Function at 0x5e4ec0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x60]
cmp eax, dword [ecx + 8]
jbe 0x5e58cf
sub esp, 0xe0
mov eax, dword [esp + 0x10c]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x110]
mov dword [esp], edx
call ecx
movzx eax, byte [esp + 4]
test al, al
jne 0x5e4f19
mov edx, dword [esp + 0xe4]
nop
mov byte [edx + 0x6c], 1
mov dword [edx + 0x34], 0
mov dword [edx + 0x64], 0
mov edx, dword [esp + 0x114]
cmp dword [edx + 0x30], 1
jle 0x5e4f2a
xor eax, eax
jmp 0x5e4f2f
mov eax, 0xffffffff
mov ebx, dword [esp + 0xe4]
mov dword [ebx + 0x64], 0
xor ecx, ecx
jmp 0x5e4f48
mov edx, dword [esp + 0x114]
cmp eax, 0xffffffff
je 0x5e4f8b
mov ebx, dword [esp + 0xe4]
mov ebp, dword [ebx + 0x64]
mov esi, edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x5c], edx
mov edi, ebx
mov ebx, dword [ebx]
mov dword [esp + 0xdc], ebx
cmp edx, ebp
jle 0x5e574b
jbe 0x5e58c5
mov dword [esp + 0x58], ebp
lea edx, [ebp + ebp*2]
lea edx, [ebx + edx*8]
mov edx, dword [edx]
jmp 0x5e5870
mov word [esp + 0x3a], cx
mov dword [esp + 0x48], eax
mov ebx, dword [esp + 0xe4]
mov ebp, dword [ebx + 0x64]
mov esi, edx
mov edx, dword [ebx + 4]
mov ebx, dword [ebx]
cmp ebp, edx
jge 0x5e4fe5
jae 0x5e5742
lea eax, [ebp + ebp*2]
lea eax, [ebx + eax*8 + 8]
mov eax, dword [eax]
lea ecx, [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.005d0320
movzx eax, word [esp + 8]
movzx ecx, word [esp + 0x3a]
mov esi, dword [esp + 0x114]
mov edx, eax
mov eax, dword [esp + 0x48]
jmp 0x5e4fe7
xor edx, edx
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
movzx ebx, dx
cmp dword [esp + 0xe8], ebx
ja 0x5e500a
mov ebp, 1
jmp 0x5e500c
mov ebp, edx
mov dword [esp + 0x54], ebx
mov word [esp + 0x3c], bp
mov edi, edx
movzx edx, cx
mov dword [esp + 0x5c], edx
mov ebx, dword [esp + 0xf4]
lea ebp, [esp + 0xe4]
cmp dword [ebp + 0x14], edx
jle 0x5e5082
lea edx, [edx + edx*2]
mov ebp, dword [ebx + edx*4]
mov edx, dword [ebx + edx*4 + 4]
movzx ebx, word [esp + 0x3c]
movzx ebx, bx
cmp edx, ebx
jbe 0x5e5739
movzx edx, word [ebp + ebx*2]
mov ebx, dword [esp + 0x104]
mov ebp, dword [esp + 0x100]
cmp ebx, edx
jbe 0x5e5730
lea edx, [ebp + edx*8]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x5c]
lea ebp, [esp + 0xe4]
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], edx
movzx edx, word [esp + 0x80]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov ebx, dword [esp + 0x54]
cmp dword [esp + 0xe8], ebx
ja 0x5e50c2
mov edi, 1
mov word [esp + 0x3e], dx
mov ebx, dword [esp + 0xf4]
mov edx, dword [esp + 0xf8]
test edx, edx
jle 0x5e5114
mov edx, dword [ebx + 4]
mov ebx, dword [ebx]
movzx ebp, di
cmp edx, ebp
jbe 0x5e5727
movzx edx, word [ebx + ebp*2]
mov ebx, dword [esp + 0x104]
mov ebp, dword [esp + 0x100]
cmp ebx, edx
jbe 0x5e571e
lea edx, [ebp + edx*8]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x10c]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x110]
mov dword [esp], edx
lea edi, [esp + 4]
lea esi, [esp + 0xe4]
call fcn.0046649c
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x50]
call ecx
movzx eax, byte [esp + 0x34]
test al, al
je 0x5e517d
movzx edx, word [esp + 0x3e]
xor ebx, ebx
jmp 0x5e5233
movzx edx, word [esp + 0x3a]
test dx, dx
jne 0x5e5196
movzx edx, word [esp + 0x3e]
mov ebx, 1
jmp 0x5e5233
movzx edx, word [esp + 0x82]
test dx, 0x4000
je 0x5e51b6
movzx edx, word [esp + 0x3e]
test dx, dx
jne 0x5e51b6
mov ebx, 1
jmp 0x5e5233
mov eax, dword [esp + 0x10c]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x110]
mov dword [esp], edx
lea edi, [esp + 4]
lea esi, [esp + 0xe4]
call fcn.0046649c
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x50]
call ecx
movzx eax, byte [esp + 0x34]
test al, al
je 0x5e5204
movzx edx, word [esp + 0x3e]
jmp 0x5e5231
movzx edx, word [esp + 0x3e]
cmp word [esp + 0x78], dx
jne 0x5e5231
movzx ebx, word [esp + 0x82]
and ebx, 0x4000
movzx ebp, word [esp + 0x7a]
and ebp, 0x4000
cmp bp, bx
sete bl
jmp 0x5e5233
xor ebx, ebx
test bl, bl
je 0x5e52f9
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov ebx, dword [esp + 0xe8]
mov ebp, dword [esp + 0xf4]
mov edx, dword [esp + 0x5c]
lea esi, [esp + 0xe4]
cmp dword [esi + 0x14], edx
jle 0x5e52b3
test ebx, ebx
setbe bl
lea edx, [edx + edx*2]
mov ecx, ebx
mov ebx, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
movzx ebp, cl
movzx ebp, bp
cmp edx, ebp
jbe 0x5e5715
movzx edx, word [ebx + ebp*2]
mov ecx, dword [esp + 0x104]
mov ebx, dword [esp + 0x100]
cmp ecx, edx
jbe 0x5e570e
lea ecx, [ebx + edx*8]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x10c]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x110]
mov dword [esp], edx
lea edi, [esp + 4]
call fcn.0046649c
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x50]
call ecx
movzx eax, byte [esp + 0x34]
xor eax, 1
movzx edx, word [esp + 0x3e]
jmp 0x5e52fb
xor eax, eax
test al, al
jne 0x5e5352
mov eax, dword [esp + 0xe4]
movzx ecx, byte [eax + 0x6c]
test cl, cl
je 0x5e5313
mov ebx, dword [eax + 0x34]
jmp 0x5e5316
mov ebx, dword [eax + 0x64]
test ebx, ebx
je 0x5e5352
mov ebx, dword [eax + 0x64]
cmp dword [eax + 4], ebx
jle 0x5e5352
test cl, cl
je 0x5e532b
mov ecx, dword [eax + 0x34]
jmp 0x5e532d
mov ecx, ebx
mov dword [esp], eax
mov dword [esp + 4], 3
lea eax, [ecx - 1]
mov dword [esp + 8], eax
lea eax, [ebx + 1]
mov dword [esp + 0xc], eax
mov word [esp + 0x10], 0x101
call fcn.005e1f90
mov eax, dword [esp + 0x10c]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x110]
mov dword [esp], edx
lea edi, [esp + 4]
lea esi, [esp + 0xe4]
call fcn.0046649c
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x50]
call ecx
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x64]
mov edx, dword [eax + 4]
mov ebx, dword [eax]
cmp edx, ecx
je 0x5e5552
movzx ebp, word [esp + 0x82]
test bp, 0x4000
jne 0x5e5472
movzx ebp, byte [eax + 0x6c]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5e546a
cmp edx, ecx
jbe 0x5e5705
lea ecx, [ecx + ecx*2]
lea esi, [ebx + ecx*8]
lea edi, [esp + 0xa0]
call fcn.004664c4
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x38]
mov ebx, dword [eax + 0x34]
inc ebx
cmp edx, ebx
jae 0x5e5454
mov dword [esp + 0xd8], eax
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6d9000]
mov dword [esp + 0x10], eax
call fcn.0044be60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xd8]
mov dword [ebx + 0x38], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x5e5444
mov dword [ebx + 0x30], eax
jmp 0x5e544c
lea edi, [ebx + 0x30]
call fcn.00465d80
mov edx, eax
mov eax, ebx
mov ebx, ecx
mov ecx, edx
mov dword [eax + 0x34], ebx
lea edx, [ebx + ebx*2]
lea edi, [ecx + edx*8 - 0x18]
lea esi, [esp + 0xa0]
call fcn.004664c4
inc dword [eax + 0x64]
jmp 0x5e5544
mov edx, dword [eax + 0x58]
test edx, edx
jg 0x5e553a
dec edx
mov dword [eax + 0x58], edx
mov edx, dword [esp + 0xe4]
movzx ebx, byte [edx + 0x6c]
test bl, bl
je 0x5e5537
mov ecx, dword [edx + 4]
mov ebx, dword [edx]
mov eax, dword [edx + 0x64]
cmp ecx, eax
jbe 0x5e5700
lea ecx, [eax + eax*2]
lea esi, [ebx + ecx*8]
lea edi, [esp + 0x88]
call fcn.004664c4
mov ecx, dword [edx + 0x30]
mov ebx, dword [edx + 0x38]
mov ebp, dword [edx + 0x34]
inc ebp
cmp ebx, ebp
jae 0x5e5520
mov dword [esp + 0xd4], edx
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6d9000]
mov dword [esp + 0x10], eax
call fcn.0044be60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xd4]
mov dword [ebx + 0x38], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x5e5512
mov dword [ebx + 0x30], eax
jmp 0x5e551a
lea edi, [ebx + 0x30]
call fcn.00465d80
mov edx, ebx
mov ebp, ecx
mov ecx, eax
mov dword [edx + 0x34], ebp
lea ebx, [ebp + ebp*2]
lea edi, [ecx + ebx*8 - 0x18]
lea esi, [esp + 0x88]
call fcn.004664c4
inc dword [edx + 0x64]
mov edx, dword [esp + 0xe4]
dec dword [edx + 0x58]
mov eax, dword [esp + 0x48]
movzx ecx, word [esp + 0x3e]
jmp 0x5e4f41
mov eax, dword [esp + 0x10c]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x110]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 4]
test al, al
jne 0x5e56eb
mov edi, dword [esp + 0xe4]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov ebx, dword [edi]
mov eax, dword [edi + 0x64]
mov ebp, ecx
sub ecx, eax
movzx esi, byte [edi + 0x6c]
xchg esi, eax
test al, al
xchg esi, eax
je 0x5e568e
cmp ebp, edx
ja 0x5e56f9
cmp eax, ebp
ja 0x5e56f2
mov dword [esp + 0xd0], edi
mov dword [esp + 0x44], ecx
mov ebp, dword [edi + 0x34]
mov dword [esp + 0x5c], ebp
lea esi, [ebp + ecx]
mov ecx, dword [edi + 0x38]
mov edi, dword [edi + 0x30]
lea ebp, [eax + eax*2]
sub edx, eax
neg edx
shl ebp, 3
sar edx, 0x1f
and ebp, edx
lea eax, [ebx + ebp]
cmp ecx, esi
jae 0x5e5617
mov dword [esp + 0xdc], eax
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
lea ecx, [0x6d9000]
mov dword [esp + 0x10], ecx
call fcn.0044be60
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x58], esi
mov dword [esp + 0xdc], edi
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x5c]
lea edx, [edx + edx*2]
lea edx, [edi + edx*8]
mov dword [esp], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
lea edx, [eax + eax*2]
shl edx, 3
mov dword [esp + 8], edx
call fcn.004666e0
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0xd0]
mov dword [edi + 0x34], eax
mov eax, dword [esp + 0x4c]
mov dword [edi + 0x38], eax
mov eax, dword [0x1eaa9f0]
test eax, eax
jne 0x5e5675
mov ecx, dword [esp + 0xdc]
mov dword [edi + 0x30], ecx
jmp 0x5e568a
lea ecx, [edi + 0x30]
mov eax, dword [esp + 0xdc]
mov edx, edi
mov edi, ecx
call fcn.00465d80
mov edi, edx
mov ecx, dword [esp + 0x44]
add dword [edi + 0x64], ecx
mov byte [edi + 0x6c], 0
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x34]
mov edx, dword [edi + 0x38]
mov ebx, dword [edi]
mov ebp, dword [edi + 4]
mov esi, dword [edi + 8]
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, dword [0x1eaa9f0]
test ecx, ecx
jne 0x5e56ba
mov dword [edi], eax
jmp 0x5e56bf
call fcn.00465d80
mov dword [edi + 0x34], ebp
mov dword [edi + 0x38], esi
mov ecx, dword [0x1eaa9f0]
test ecx, ecx
jne 0x5e56d4
mov dword [edi + 0x30], ebx
jmp 0x5e56e4
lea ecx, [edi + 0x30]
mov eax, ebx
mov edx, edi
mov edi, ecx
call fcn.00465d80
mov edi, edx
mov dword [edi + 0x64], 0
add esp, 0xe0
ret
mov ecx, ebp
call fcn.00465e60
mov ecx, ebp
call fcn.00465e40
call fcn.00465e00
mov eax, ecx
mov ecx, edx
call fcn.00465e00
mov eax, edx
call fcn.00465e00
mov eax, ebp
mov ecx, edx
call fcn.00465e00
mov eax, edx
mov ecx, ebx
call fcn.00465e00
mov eax, ebp
mov ecx, edx
call fcn.00465e00
mov eax, edx
mov ecx, ebx
call fcn.00465e00
mov eax, ebx
mov ecx, edx
call fcn.00465e00
mov eax, ebp
mov ecx, edx
call fcn.00465e00
mov ebx, dword [esi + 0x30]
mov edx, dword [esi + 0x2c]
cmp eax, ebx
jae 0x5e585d
lea ebx, [eax + eax*2]
mov edx, dword [edx + ebx*4]
and edx, dword [esi + 0x38]
test edx, edx
jne 0x5e584f
mov ecx, dword [esp + 0x5c]
cmp ecx, ebp
je 0x5e5552
nop
movzx edx, byte [edi + 0x6c]
test dl, dl
je 0x5e5845
cmp ecx, ebp
jbe 0x5e5856
lea ecx, [ebp + ebp*2]
mov edx, dword [esp + 0xdc]
lea ecx, [edx + ecx*8]
mov edx, edi
lea edi, [esp + 0xb8]
mov ebx, esi
mov esi, ecx
call fcn.004664c4
mov ecx, dword [edx + 0x30]
mov ebp, dword [edx + 0x38]
mov esi, ebx
mov ebx, dword [edx + 0x34]
inc ebx
cmp ebp, ebx
jae 0x5e5826
mov dword [esp + 0xd8], edx
mov dword [esp + 0x40], eax
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6d9000]
mov dword [esp + 0x10], eax
call fcn.0044be60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xd8]
mov dword [ebx + 0x38], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x5e580d
mov dword [ebx + 0x30], eax
jmp 0x5e5815
lea edi, [ebx + 0x30]
call fcn.00465d80
mov edx, ebx
mov esi, dword [esp + 0x114]
mov ebx, ecx
mov ecx, eax
mov eax, dword [esp + 0x40]
mov dword [edx + 0x34], ebx
lea ebx, [ebx + ebx*2]
lea edi, [ecx + ebx*8 - 0x18]
lea esi, [esp + 0xb8]
call fcn.004664c4
mov esi, dword [esp + 0x114]
mov edi, edx
inc dword [edi + 0x64]
xor ecx, ecx
jmp 0x5e4f41
mov edx, esi
jmp 0x5e4f8b
mov eax, ebp
call fcn.00465e00
mov ecx, ebx
call fcn.00465e00
dec eax
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0x58]
mov ebx, dword [esi + 0x30]
mov ebp, dword [esi + 0x2c]
cmp eax, ebx
jae 0x5e58be
mov dword [esp + 0x4c], ebx
lea ebx, [eax + eax*2]
lea ebx, [ebp + ebx*4 + 4]
cmp dword [ebx], edx
jg 0x5e5864
mov ebx, dword [esp + 0x4c]
jmp 0x5e5894
inc eax
mov ebx, dword [esp + 0x4c]
cmp eax, ebx
jae 0x5e58b7
lea ebx, [eax + eax*2]
lea ebx, [ebp + ebx*4 + 8]
cmp dword [ebx], edx
jl 0x5e588f
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0x58]
jmp 0x5e574b
mov ecx, ebx
call fcn.00465e00
mov ecx, ebx
call fcn.00465e00
mov eax, ebp
mov ecx, edx
call fcn.00465e00
nop
call fcn.004649b0
jmp fcn.005e4ec0