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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5d2a49
sub esp, 0x6c
mov eax, dword [esp + 0x70]
mov edx, dword [eax + 8]
movzx ebx, byte [eax + 0x4a]
nop
mov ebp, dword [edx]
mov ecx, ebx
mov ebx, dword [esp + 0x80]
cmp dword [edx + 4], ebx
jbe 0x5d2a42
mov byte [esp + 0x23], cl
lea edx, [ebx + ebx*2]
shl edx, 3
movzx edx, byte [ebp + edx]
cmp dl, 5
je 0x5d29a3
nop
mov edx, dword [esp + 0x74]
mov ebp, dword [edx]
inc ebp
imul ebp, ebx
mov esi, eax
mov eax, dword [esp + 0x84]
add ebp, eax
mov dword [esp + 0x44], ebp
mov edi, eax
mov eax, dword [edx + 0x28]
shr ebp, 5
cmp dword [edx + 0x2c], ebp
jbe 0x5d2a3b
mov ebx, dword [eax + ebp*4]
mov ecx, dword [esp + 0x44]
mov edx, 1
shl edx, cl
test ebx, edx
je 0x5d2994
xor eax, eax
test al, al
je 0x5d298b
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x20]
lea ebp, [ebx + 1]
cmp ebp, ecx
ja 0x5d292b
lea ecx, [ebx + 1]
mov dword [eax + 0x20], ecx
lea ecx, [ebx + ebx*2]
mov ebx, dword [esp + 0x80]
mov dword [edx + ecx*4], ebx
lea ebx, [edx + ecx*4]
mov byte [ebx + 4], 0
mov dword [edx + ecx*4 + 8], edi
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
jmp 0x5d21a1
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x28]
movzx edi, byte [esp + 0x22]
mov edx, dword [esp + 0x50]
mov ebp, ecx
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x3c], esi
movzx ebx, byte [esp + 0x22]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x70]
mov edx, dword [esi + 8]
mov ebp, dword [edx]
mov eax, dword [esp + 0x3c]
cmp dword [edx + 4], eax
jbe 0x5d2a2d
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x22], bl
lea edx, [eax + eax*2]
lea ebp, [ebp + edx*8]
lea edi, [esp + 0x54]
mov esi, ebp
call fcn.0044d664
movzx ecx, byte [esp + 0x54]
cmp cl, 4
ja 0x5d279d
shl edx, 3
cmp cl, 1
ja 0x5d253b
test cl, cl
jne 0x5d22d4
test bl, bl
je 0x5d2205
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x2c]
xor edx, edx
nop
mov ebx, dword [esp + 0x74]
mov ebp, dword [ebx]
inc ebp
imul ebp, eax
add ebp, ecx
mov esi, eax
mov eax, dword [ebx + 0x28]
mov edi, ebp
shr ebp, 5
cmp dword [ebx + 0x2c], ebp
jbe 0x5d2a34
mov dword [esp + 0x28], ecx
mov byte [esp + 0x22], dl
mov ebx, dword [eax + ebp*4]
mov ecx, edi
mov edx, 1
shl edx, cl
test ebx, edx
je 0x5d21f6
xor eax, eax
test al, al
jne 0x5d20af
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x70]
mov eax, ebx
mov ecx, ebp
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov ebx, dword [eax + 0x20]
mov ebp, dword [eax + 0x1c]
test ebx, ebx
jle 0x5d28fe
mov edi, edx
lea edx, [ebx - 1]
lea ebx, [ebx + ebx*2]
mov dword [esp + 0x44], ebx
mov ecx, dword [ebp + ebx*4 - 0xc]
mov dword [esp + 0x38], ecx
shl ebx, 2
mov ecx, dword [esp + 0x44]
mov ecx, dword [ebp + ecx*4 - 4]
movzx ebx, byte [ebx + ebp - 8]
mov dword [eax + 0x20], edx
lea edx, [eax + 0x1c]
mov dword [esp + 0x50], edx
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
jmp 0x5d20e3
or edx, ebx
mov dword [eax + ebp*4], edx
mov eax, 1
jmp 0x5d217d
mov ebp, dword [esp + 0x70]
mov ecx, ebp
mov ebp, dword [ebp + 8]
nop
mov esi, ebx
mov ebx, dword [ebp]
cmp dword [ebp + 4], eax
jbe 0x5d29f2
movzx edx, byte [edx + ebx]
cmp dl, 5
je 0x5d22ca
mov edx, dword [esp + 0x74]
mov ebx, dword [edx + 0x20]
mov ebp, dword [edx + 0x1c]
mov edi, eax
mov eax, dword [edx + 0x24]
lea edx, [ebx + 1]
cmp edx, eax
ja 0x5d226e
lea eax, [ebx + 1]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x20], eax
lea eax, [ebx + ebx*2]
mov dword [ebp + eax*4], edi
lea ebx, [ebp + eax*4]
mov byte [ebx + 4], 1
mov ebx, dword [esp + 0x2c]
mov dword [ebp + eax*4 + 8], ebx
mov eax, dword [esp + 0x58]
mov ecx, ebx
mov edx, esi
jmp 0x5d2143
lea ecx, [0x65cf00]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00438ea0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x74]
mov dword [ebx + 0x24], edx
mov edx, dword [0x8a6100]
test edx, edx
jne 0x5d22bf
mov dword [ebx + 0x1c], eax
movzx esi, byte [esp + 0x22]
mov edi, dword [esp + 0x3c]
mov ebx, ecx
mov ebp, eax
mov ecx, dword [esp + 0x70]
jmp 0x5d2240
mov edi, dword [esp + 0x50]
call fcn.0044d090
jmp 0x5d22ac
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x2c]
jmp 0x5d2261
mov eax, dword [esp + 0x70]
mov edx, dword [eax + 8]
mov ebp, dword [edx + 4]
mov edx, dword [edx]
mov eax, dword [esp + 0x58]
cmp eax, ebp
jae 0x5d29eb
mov esi, ebx
lea ebx, [eax + eax*2]
shl ebx, 3
movzx ebx, byte [ebx + edx]
mov edi, eax
lea eax, [ebx - 7]
cmp al, 3
ja 0x5d242e
nop
mov eax, dword [esp + 0x5c]
cmp eax, ebp
jae 0x5d29e4
mov dword [esp + 0x34], eax
lea ebx, [eax + eax*2]
shl ebx, 3
movzx edx, byte [ebx + edx]
cmp dl, 5
je 0x5d2423
nop
mov edx, dword [esp + 0x74]
mov ebx, dword [edx]
inc ebx
imul ebx, eax
mov ebp, dword [esp + 0x2c]
add ebx, ebp
mov dword [esp + 0x44], ebx
mov edi, ebp
mov ebp, dword [edx + 0x28]
shr ebx, 5
cmp dword [edx + 0x2c], ebx
jbe 0x5d29dd
mov eax, dword [ebp + ebx*4]
mov ecx, dword [esp + 0x44]
mov edx, 1
shl edx, cl
test eax, edx
je 0x5d2413
xor eax, eax
test al, al
je 0x5d240d
mov eax, dword [esp + 0x74]
mov edx, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
mov ebp, dword [eax + 0x1c]
mov ecx, eax
lea eax, [edx + 1]
cmp eax, ebx
ja 0x5d23b3
lea eax, [edx + 1]
mov dword [ecx + 0x20], eax
lea eax, [edx + edx*2]
mov edx, dword [esp + 0x34]
mov dword [ebp + eax*4], edx
lea edx, [ebp + eax*4]
mov byte [edx + 4], 0
mov dword [ebp + eax*4 + 8], edi
mov eax, dword [esp + 0x5c]
mov ebx, dword [ecx]
mov ecx, ebx
mov edx, esi
jmp 0x5d2143
lea ecx, [0x65cf00]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
call fcn.00438ea0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x74]
mov dword [ebx + 0x24], edx
mov edx, dword [0x8a6100]
test edx, edx
jne 0x5d2402
mov dword [ebx + 0x1c], eax
movzx esi, byte [esp + 0x22]
mov edi, dword [esp + 0x2c]
mov edx, ecx
mov ebp, eax
mov ecx, ebx
jmp 0x5d2387
mov edi, dword [esp + 0x50]
call fcn.0044d090
jmp 0x5d23f1
mov ecx, dword [esp + 0x74]
jmp 0x5d23a4
or edx, eax
mov dword [ebp + ebx*4], edx
mov eax, 1
jmp 0x5d2369
mov edi, dword [esp + 0x2c]
xor eax, eax
jmp 0x5d2369
nop
mov eax, dword [esp + 0x74]
mov edx, dword [eax]
mov dword [esp + 0x30], edx
cmp bl, 5
je 0x5d2534
nop
lea ebx, [edx + 1]
imul ebx, edi
add ebx, edx
mov dword [esp + 0x44], ebx
mov ebp, dword [eax + 0x28]
shr ebx, 5
cmp dword [eax + 0x2c], ebx
jbe 0x5d29d6
mov edx, dword [ebp + ebx*4]
mov ecx, dword [esp + 0x44]
mov eax, 1
shl eax, cl
test edx, eax
je 0x5d2524
xor eax, eax
test al, al
je 0x5d251e
mov eax, dword [esp + 0x74]
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x24]
mov ebp, dword [eax + 0x20]
mov ecx, eax
lea eax, [ebp + 1]
cmp eax, ebx
ja 0x5d24c0
lea eax, [ebp + 1]
mov dword [ecx + 0x20], eax
lea eax, [ebp + ebp*2]
mov dword [edx + eax*4], edi
lea ebx, [edx + eax*4]
mov byte [ebx + 4], 0
mov ebx, dword [esp + 0x30]
mov dword [edx + eax*4 + 8], ebx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
mov edx, esi
jmp 0x5d2143
mov dword [esp + 0x40], edi
lea ecx, [0x65cf00]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
call fcn.00438ea0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x74]
mov dword [ebx + 0x24], edx
mov edx, dword [0x8a6100]
test edx, edx
jne 0x5d2513
mov dword [ebx + 0x1c], eax
movzx esi, byte [esp + 0x22]
mov edi, dword [esp + 0x40]
mov ebp, ecx
mov edx, eax
mov ecx, ebx
jmp 0x5d2495
mov edi, dword [esp + 0x50]
call fcn.0044d090
jmp 0x5d2502
mov ecx, dword [esp + 0x74]
jmp 0x5d24b1
or eax, edx
mov dword [ebp + ebx*4], eax
mov eax, 1
jmp 0x5d2477
xor eax, eax
jmp 0x5d2477
cmp cl, 2
jne 0x5d2675
test bl, bl
jne 0x5d2655
mov ebp, dword [esp + 0x5c]
test ebp, ebp
jb 0x5d264d
mov ecx, ebx
mov ebx, dword [esp + 0x74]
mov esi, edx
mov edx, dword [ebx + 4]
cmp dword [ebx + 8], ebp
jbe 0x5d2643
mov edi, ebx
mov ebx, dword [esp + 0x70]
mov ebx, dword [ebx + 8]
nop
mov edx, dword [edx + ebp*4]
mov ebp, dword [ebx]
cmp dword [ebx + 4], eax
jbe 0x5d29c1
movzx ebx, byte [esi + ebp]
cmp bl, 5
je 0x5d25bb
mov ebx, dword [edi + 0x1c]
mov ebp, dword [edi + 0x20]
mov esi, edx
lea edx, [ebp + 1]
mov eax, dword [edi + 0x24]
cmp edx, eax
ja 0x5d25e2
lea eax, [ebp + 1]
mov dword [edi + 0x20], eax
lea eax, [ebp + ebp*2]
mov edx, dword [esp + 0x3c]
mov dword [ebx + eax*4], edx
lea edx, [ebx + eax*4]
mov byte [edx + 4], 1
mov dword [ebx + eax*4 + 8], esi
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x5c]
cmp dword [edi + 8], edx
jbe 0x5d29ba
mov ebx, dword [esp + 0x2c]
mov dword [eax + edx*4], ebx
mov eax, dword [esp + 0x58]
mov ecx, ebx
movzx edx, byte [esp + 0x22]
jmp 0x5d2143
mov dword [esp + 0x44], esi
lea ecx, [0x65cf00]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00438ea0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x74]
mov dword [ebx + 0x24], edx
mov edx, dword [0x8a6100]
test edx, edx
jne 0x5d2638
mov dword [ebx + 0x1c], eax
mov esi, dword [esp + 0x44]
mov edi, ebx
mov ebp, ecx
mov ebx, eax
movzx ecx, byte [esp + 0x22]
jmp 0x5d259f
mov edi, dword [esp + 0x50]
call fcn.0044d090
jmp 0x5d2624
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x74]
jmp 0x5d25d2
mov ecx, ebx
mov ebx, dword [esp + 0x74]
jmp 0x5d2643
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x5c]
cmp dword [eax + 8], edx
jbe 0x5d29c8
mov ebx, dword [esp + 0x2c]
mov dword [ecx + edx*4], ebx
jmp 0x5d2185
cmp cl, 3
jne 0x5d26cd
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 4], ebx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x5c]
mov byte [esp + 8], al
call fcn.005d2ec0
movzx eax, byte [esp + 0xc]
test al, al
je 0x5d2185
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
movzx edx, byte [esp + 0x22]
jmp 0x5d2143
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
je 0x5d2791
cmp edx, 1
jle 0x5d2788
mov edx, dword [esp + 0x2c]
mov dword [ecx + 4], edx
mov ecx, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
cmp ebx, 1
jbe 0x5d29b3
mov ebp, dword [ecx + 4]
cmp ebp, 0xffffffff
jne 0x5d275e
mov ebp, dword [eax + 8]
mov esi, eax
mov eax, dword [eax + 4]
cmp ebx, ebp
jle 0x5d275a
cmp ecx, eax
je 0x5d2729
mov dword [esp], ecx
mov dword [esp + 4], eax
shl ebp, 2
mov dword [esp + 8], ebp
call fcn.0044d890
movzx eax, byte [esp + 0x23]
test al, al
je 0x5d274e
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x74]
cmp dword [edx], ecx
jne 0x5d2185
mov byte [esp + 0x88], 1
add esp, 0x6c
ret
mov byte [esp + 0x88], 1
add esp, 0x6c
ret
mov ebp, ebx
jmp 0x5d2712
mov esi, ecx
movzx ecx, byte [esp + 0x23]
test cl, cl
je 0x5d2784
test edx, edx
jle 0x5d2780
cmp edx, ebp
xchg ebp, ebx
setg bl
xchg ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5d2729
mov ecx, esi
jmp 0x5d2706
xor ebp, ebp
jmp 0x5d2776
xor ebp, ebp
jmp 0x5d2776
mov edx, dword [esp + 0x2c]
jmp 0x5d26ef
mov byte [esp + 0x88], 1
add esp, 0x6c
ret
cmp cl, 7
ja 0x5d2819
cmp cl, 5
je 0x5d2a13
cmp cl, 6
jne 0x5d27bf
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
mov edx, ebx
jmp 0x5d2143
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 4], ebx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
nop
lea edx, [esp + 0x54]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.005cb990
cmp dword [esp + 8], 0xffffffff
je 0x5d2185
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
lea ecx, [ebp + ebx]
mov eax, dword [esp + 0x58]
movzx edx, byte [esp + 0x22]
jmp 0x5d2143
cmp cl, 8
je 0x5d28b2
cmp cl, 9
je 0x5d2876
cmp cl, 0xa
jne 0x5d29f9
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 4], ebx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
cmp eax, 0xa
je 0x5d2185
cmp eax, 0xffffffff
je 0x5d2185
mov ebx, dword [esp + 0x2c]
add ecx, ebx
mov eax, dword [esp + 0x58]
movzx edx, byte [esp + 0x22]
jmp 0x5d2143
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 4], ebx
call ecx
mov eax, dword [esp + 0xc]
cmp dword [esp + 8], 0xffffffff
je 0x5d2185
mov ebx, dword [esp + 0x2c]
lea ecx, [ebx + eax]
mov eax, dword [esp + 0x58]
movzx edx, byte [esp + 0x22]
jmp 0x5d2143
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 4], ebx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
test ebx, ebx
jbe 0x5d29cf
cmp dword [edx], eax
jne 0x5d2185
mov ebx, dword [esp + 0x2c]
add ecx, ebx
mov eax, dword [esp + 0x58]
movzx edx, byte [esp + 0x22]
jmp 0x5d2143
movzx ecx, byte [esp + 0x23]
test cl, cl
je 0x5d2927
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0x14], 1
jle 0x5d2923
mov eax, dword [ecx + 4]
test eax, eax
setge al
mov byte [esp + 0x88], al
add esp, 0x6c
ret
xor eax, eax
jmp 0x5d2918
xor eax, eax
jmp 0x5d2918
lea eax, [0x65cf00]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
call fcn.00438ea0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x74]
mov dword [ebx + 0x24], edx
mov edx, dword [0x8a6100]
test edx, edx
jne 0x5d2981
mov dword [ebx + 0x1c], eax
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x84]
mov ebx, ecx
mov edx, eax
mov eax, dword [esp + 0x74]
jmp 0x5d2084
lea edi, [ebx + 0x1c]
call fcn.0044d090
jmp 0x5d2969
mov eax, dword [esp + 0x74]
jmp 0x5d20a2
or edx, ebx
mov dword [eax + ebp*4], edx
mov eax, 1
jmp 0x5d2064
mov esi, eax
mov edi, dword [esp + 0x84]
xor eax, eax
jmp 0x5d2064
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
lea eax, [0x640d20]
mov dword [esp], eax
lea eax, [0x6e25a0]
mov dword [esp + 4], eax
call fcn.00427f10
ud2
lea eax, [0x640d20]
mov dword [esp], eax
lea eax, [0x6e25a8]
mov dword [esp + 4], eax
call fcn.00427f10
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.00427150
ud2
call fcn.0044b940
jmp fcn.005d1fd0