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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 4]
cmp eax, dword [ecx + 8]
jbe 0x5f11a3
sub esp, 0x84
mov ecx, dword [esp + 0x88]
mov edx, dword [ecx + 0x10]
test edx, edx
jne 0x5f0864
xor ecx, ecx
xor ebx, ebx
mov esi, dword [esp + 0x90]
mov ebp, dword [esp + 0x8c]
xor eax, eax
jmp 0x5f0896
mov eax, dword [edx]
mov dword [esp], ecx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 8], ebx
call eax
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x88]
mov edi, ebx
movzx ebx, byte [edx + 5]
test bl, bl
jne 0x5f1190
mov dword [esp + 0x60], ebp
mov dword [esp + 0x40], esi
mov byte [esp + 0x23], al
test ecx, ecx
jne 0x5f0925
movzx ebx, byte [edx + 4]
test bl, bl
je 0x5f0925
test esi, esi
jne 0x5f0925
lea eax, [0x74ef60]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov dword [edi + 4], 0
mov eax, dword [0x900e70]
test eax, eax
jne 0x5f08f2
mov ecx, dword [esp + 0x60]
mov dword [edi], ecx
jmp 0x5f08fd
mov eax, dword [esp + 0x60]
call fcn.00456ac0
mov ecx, eax
mov dword [edi + 0xc], 2
lea edx, [0x76976a]
mov dword [edi + 8], edx
movzx eax, byte [esp + 0x23]
mov edx, dword [esp + 0x88]
mov ebp, ecx
mov esi, dword [esp + 0x40]
lea ecx, [0x7ca474]
mov dword [esp + 0x34], ecx
mov ebx, edi
lea edi, [esp + 0x64]
xor eax, eax
call fcn.00456d58
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], esi
mov eax, dword [esp + 0x34]
movzx ecx, byte [esp + 0x23]
jmp 0x5f095f
mov edx, dword [esp + 0x88]
mov ebp, dword [esp + 0x60]
mov esi, eax
mov eax, ecx
mov ebx, edi
movzx ecx, byte [esp + 0x23]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x78]
lea ebp, [esp + 0x64]
cmp dword [ebp + 4], edi
jle 0x5f0c92
mov byte [esp + 0x23], cl
mov dword [esp], ebp
call fcn.005f1af0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
test ecx, ecx
jne 0x5f0a39
mov edx, dword [esp + 0x34]
test edx, edx
je 0x5f09b4
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x60]
lea ebp, [0x76976a]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x54]
jmp 0x5f0a2f
mov ebx, dword [esp + 0x88]
movzx ebp, byte [ebx + 4]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x5f09dd
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x60]
lea ebp, [0x76976a]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x54]
jmp 0x5f0a2f
lea eax, [0x74ef60]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x40]
mov dword [edi + 4], eax
mov ecx, dword [0x900e70]
test ecx, ecx
jne 0x5f0a08
mov edx, dword [esp + 0x60]
mov dword [edi], edx
jmp 0x5f0a19
mov ecx, eax
mov eax, dword [esp + 0x60]
call fcn.00456ac0
mov eax, ecx
mov edx, dword [esp + 0x60]
mov dword [edi + 0xc], 2
lea ebp, [0x76976a]
mov dword [edi + 8], ebp
lea ecx, [0x7ca474]
movzx ebx, byte [esp + 0x23]
jmp 0x5f0bfd
cmp ecx, 4
jge 0x5f0a42
xor edx, edx
jmp 0x5f0a73
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x4c], eax
mov dword [esp], eax
lea ecx, [0x769b35]
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
call fcn.00403310
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x2c]
mov edx, eax
mov eax, dword [esp + 0x4c]
test dl, dl
jne 0x5f0ab9
mov edx, dword [esp + 0x34]
test edx, edx
je 0x5f0a87
mov eax, edx
mov ebx, dword [esp + 0x54]
jmp 0x5f0aa6
mov edx, dword [esp + 0x88]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.005f1ed0
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ecx, ebx
movzx edx, byte [esp + 0x23]
mov ebx, dword [esp + 0x88]
jmp 0x5f0be9
cmp ecx, 4
jb 0x5f1173
add ecx, 0xfffffffc
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
add eax, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.005f2380
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x5f0b1b
mov edx, dword [esp + 0x34]
test edx, edx
je 0x5f0aff
mov ebx, edx
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
lea ebp, [0x76976a]
mov ecx, ebx
mov edi, eax
movzx ebx, byte [esp + 0x23]
mov eax, dword [esp + 0x40]
jmp 0x5f0bfd
mov dword [esp + 0x30], edx
mov dword [esp + 0x50], ecx
movzx eax, byte [esp + 0x23]
test al, al
je 0x5f0b33
mov eax, 1
jmp 0x5f0b50
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.005e9bb0
mov eax, dword [esp + 8]
test eax, eax
setne al
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
mov byte [esp + 0x23], al
lea ebx, [esp + 0x64]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.005f1bd0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x5f0b7d
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 0x54]
jmp 0x5f0bb9
mov ebx, dword [esp + 0x88]
mov edx, dword [ebx + 0xc]
test edx, edx
jne 0x5f0b91
mov ecx, dword [esp + 0x54]
jmp 0x5f0bb9
mov eax, dword [edx]
mov dword [esp], ebx
mov ecx, dword [esp + 0x50]
mov dword [esp + 4], ecx
mov ebp, dword [esp + 0x30]
mov dword [esp + 8], ebp
call eax
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ecx, ebx
mov ebx, dword [esp + 0x88]
test eax, eax
jne 0x5f0be4
mov dword [esp], ebx
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
call fcn.005f1ed0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x88]
movzx edx, byte [esp + 0x23]
lea ebp, [0x76976a]
mov edi, ecx
mov ebx, edx
mov edx, dword [esp + 0x60]
mov ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x54], edi
mov byte [esp + 0x23], bl
mov esi, dword [esp + 0x80]
lea ebp, [esi + 1]
mov dword [esp + 0x80], ebp
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
test edx, edx
je 0x5f0c5a
cmp ebx, ebp
jle 0x5f0c44
lea edi, [ebx - 1]
cmp edi, ebp
jne 0x5f0c51
cmp ebx, ebp
jbe 0x5f116a
lea edx, [edx + esi*8 + 8]
mov edx, dword [edx + 4]
test edx, edx
jne 0x5f0c51
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x78], edx
jmp 0x5f0949
mov edi, dword [esp + 0x54]
jmp 0x5f0949
mov edx, dword [esp + 0x7c]
lea ebx, [edx + 1]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
lea edi, [ebp - 1]
cmp edi, ebx
jne 0x5f0c89
cmp ebp, ebx
jbe 0x5f1161
lea edx, [esi + edx + 1]
cmp byte [edx], 0x2e
jne 0x5f0c89
mov dword [esp + 0x78], ebp
mov edi, dword [esp + 0x54]
jmp 0x5f0949
test cl, cl
je 0x5f0cc1
mov ecx, dword [edx + 0x14]
test ecx, ecx
je 0x5f0cc1
test eax, eax
jne 0x5f0cc1
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
jmp 0x5f1037
movzx ecx, byte [esp + 0x94]
test cl, cl
je 0x5f0ced
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
jmp 0x5f0e49
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
test ebp, ebp
jne 0x5f0d09
mov ebp, dword [esp + 0x64]
mov esi, dword [esp + 0x68]
test cl, cl
jmp 0x5f0d54
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x3c], eax
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edi
lea eax, [0x7c8360]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
call fcn.004b2ff0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
movzx eax, byte [esp + 0x94]
test al, al
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x5c]
je 0x5f0e09
movzx ecx, byte [edx + 4]
test cl, cl
je 0x5f0dff
test eax, eax
je 0x5f0d77
mov ecx, ebp
mov edx, eax
mov edi, ebx
mov eax, esi
jmp 0x5f0e11
test esi, esi
je 0x5f0d8d
lea ecx, [esi + ebp - 1]
cmp byte [ecx], 0x2e
jne 0x5f0d8b
lea ecx, [esi - 1]
test esi, esi
jmp 0x5f0d8f
test esi, esi
mov ecx, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x44], ebp
je 0x5f0da1
cmp ecx, 0xfd
jle 0x5f0df5
lea eax, [0x74ef60]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov ecx, dword [0x900e70]
test ecx, ecx
jne 0x5f0dcc
mov ecx, dword [esp + 0x44]
mov dword [edi], ecx
jmp 0x5f0ddd
mov ecx, eax
mov eax, dword [esp + 0x44]
call fcn.00456ac0
mov edx, eax
mov eax, ecx
mov ecx, edx
mov dword [edi + 0xc], 2
lea edx, [0x76976a]
mov dword [edi + 8], edx
lea edx, [0x7ca474]
jmp 0x5f0e11
mov ecx, ebp
mov edx, eax
mov edi, ebx
mov eax, esi
jmp 0x5f0e11
mov ecx, ebp
mov edx, eax
mov edi, ebx
mov eax, esi
jmp 0x5f0e11
mov ecx, ebp
mov edx, eax
mov edi, ebx
mov eax, esi
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], edi
add esp, 0x84
ret
movzx ecx, byte [esp + 0x94]
lea ebp, [esp + 0x64]
mov eax, edx
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x78]
cmp dword [ebp + 4], esi
jle 0x5f0ced
mov dword [esp + 0x58], ebx
mov dword [esp + 0x38], eax
mov dword [esp], ebp
call fcn.005f1af0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
xor edx, edx
jmp 0x5f0ff8
lea edx, [0x769b35]
mov dword [esp], edx
mov dword [esp + 4], 4
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.005f2c80
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x38]
test ebp, ebp
je 0x5f0eb1
mov eax, ebp
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x28], ebx
lea ebp, [esp + 0x64]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.005f1bd0
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
jmp 0x5f0eef
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x88]
movzx esi, byte [ebp + 4]
xchg esi, eax
test al, al
xchg esi, eax
je 0x5f0f68
test edx, edx
jne 0x5f0f68
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
test ecx, ecx
je 0x5f0f15
cmp ecx, 0x3f
jle 0x5f0f68
lea eax, [0x74ef60]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x28]
mov dword [edi + 4], eax
mov eax, dword [0x900e70]
test eax, eax
jne 0x5f0f40
mov edx, dword [esp + 0x48]
mov dword [edi], edx
jmp 0x5f0f49
mov eax, dword [esp + 0x48]
call fcn.00456ac0
mov dword [edi + 0xc], 2
lea ebp, [0x76976a]
mov dword [edi + 8], ebp
mov ebp, dword [esp + 0x88]
lea edx, [0x7ca474]
mov ebx, edi
nop
mov esi, dword [esp + 0x80]
lea eax, [esi + 1]
mov dword [esp + 0x80], eax
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
test edi, edi
je 0x5f0fc0
cmp ecx, eax
jle 0x5f0fa7
lea ebp, [ecx - 1]
cmp ebp, eax
jne 0x5f0fb4
cmp ecx, eax
jbe 0x5f1014
lea eax, [edi + esi*8 + 8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x5f0fb4
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x78], eax
jmp 0x5f0e34
mov ebp, dword [esp + 0x88]
jmp 0x5f0e34
mov esi, dword [esp + 0x7c]
lea eax, [esi + 1]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
lea ebp, [ecx - 1]
cmp ebp, eax
jne 0x5f0feb
cmp ecx, eax
jbe 0x5f100f
lea eax, [esi + edi + 1]
cmp byte [eax], 0x2e
jne 0x5f0feb
mov dword [esp + 0x78], ecx
mov ebp, dword [esp + 0x88]
jmp 0x5f0e34
inc edx
cmp edx, ecx
jge 0x5f0ee7
jae 0x5f1019
lea ebx, [edx + eax]
cmp byte [ebx], 0x80
jb 0x5f0ff7
jmp 0x5f0e75
call fcn.00456b40
call fcn.00456b40
mov eax, edx
call fcn.00456b40
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x54]
lea ebp, [esp + 0x64]
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x78]
cmp dword [ebp + 4], ecx
jle 0x5f0cc1
mov dword [esp], ebp
call fcn.005f1af0
mov eax, dword [esp + 0x88]
mov edx, dword [eax + 0x14]
mov ecx, dword [edx]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call ecx
movzx eax, byte [esp + 8]
test al, al
je 0x5f10fb
nop
mov edx, dword [esp + 0x80]
lea eax, [edx + 1]
mov dword [esp + 0x80], eax
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
test ebx, ebx
je 0x5f10c3
cmp ecx, eax
jle 0x5f10b6
lea ebp, [ecx - 1]
cmp ebp, eax
jne 0x5f1020
cmp ecx, eax
jbe 0x5f115c
lea eax, [ebx + edx*8 + 8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x5f1020
mov eax, dword [esp + 0x68]
mov dword [esp + 0x78], eax
jmp 0x5f1020
mov edx, dword [esp + 0x7c]
lea eax, [edx + 1]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
lea ebp, [ecx - 1]
cmp ebp, eax
jne 0x5f1020
cmp ecx, eax
jbe 0x5f1157
lea eax, [ebx + edx + 1]
cmp byte [eax], 0x2e
jne 0x5f1020
mov dword [esp + 0x78], ecx
jmp 0x5f1020
lea eax, [0x74ef60]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x40]
mov dword [edi + 4], eax
mov eax, dword [0x900e70]
test eax, eax
jne 0x5f1126
mov eax, dword [esp + 0x60]
mov dword [edi], eax
jmp 0x5f112f
mov eax, dword [esp + 0x60]
call fcn.00456ac0
mov dword [edi + 0xc], 1
lea ecx, [0x7c83b4]
mov dword [edi + 8], ecx
mov edx, dword [esp + 0x88]
lea ebp, [esp + 0x64]
lea eax, [0x7ca474]
mov ebx, edi
jmp 0x5f0cc1
call fcn.00456b40
call fcn.00456b40
mov eax, ebx
mov ecx, ebp
call fcn.00456b40
mov eax, ebp
mov ecx, ebx
call fcn.00456b40
mov eax, 4
call fcn.00456ba0
dec esi
mov ebx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add ebp, esi
mov esi, ebx
test esi, esi
je 0x5f08ab
cmp byte [ebp], 0x2e
je 0x5f117d
jmp 0x5f08ab
call fcn.00455690
jmp fcn.005f0820