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

Disassembly:
mov ecx, dword [0x90eeac]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x158]
cmp eax, dword [ecx + 8]
jbe 0x5f4d6c
sub esp, 0x1d8
mov eax, dword [esp + 0x1dc]
mov ecx, dword [eax + 0x138]
test ecx, ecx
je 0x5f42f6
mov edx, dword [eax + 0x13c]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], edx
mov ecx, dword [esp + 0x1a0]
test ecx, ecx
je 0x5f42ee
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x5f42e5
or edx, 0x80
mov ebx, dword [esp + 0x1a4]
jmp 0x5f42fc
xor edx, edx
xor ecx, ecx
xor ebx, ebx
jmp 0x5f42fc
xor edx, edx
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x178], ebx
mov dword [esp + 0x174], ecx
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x18
call fcn.004cc160
mov eax, dword [esp + 0x18]
and eax, 0x1f
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x14]
nop
cmp eax, 9
ja 0x5f435f
cmp eax, 7
jne 0x5f4347
mov eax, dword [ecx]
jmp 0x5f437c
cmp eax, 8
jne 0x5f4351
movzx eax, byte [ecx]
jmp 0x5f437c
cmp eax, 9
jne 0x5f4d2e
movzx eax, word [ecx]
jmp 0x5f437c
cmp eax, 0xa
jne 0x5f4368
mov eax, dword [ecx]
jmp 0x5f437c
cmp eax, 0xb
jne 0x5f4371
mov eax, dword [ecx]
jmp 0x5f437c
cmp eax, 0xc
jne 0x5f4d2e
mov eax, dword [ecx]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x174]
mov dword [esp], ecx
mov edx, dword [esp + 0x178]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x28]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x17
call fcn.004cc160
mov eax, dword [esp + 0x18]
and eax, 0x1f
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x14]
nop
cmp eax, 9
ja 0x5f43e9
cmp eax, 7
jne 0x5f43cd
mov eax, dword [ecx]
xor ecx, ecx
jmp 0x5f440d
cmp eax, 8
jne 0x5f43d9
movzx eax, byte [ecx]
xor ecx, ecx
jmp 0x5f440d
cmp eax, 9
jne 0x5f4cf1
movzx eax, word [ecx]
xor ecx, ecx
jmp 0x5f440d
cmp eax, 0xa
jne 0x5f43f4
mov eax, dword [ecx]
xor ecx, ecx
jmp 0x5f440d
cmp eax, 0xb
jne 0x5f4400
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x5f440d
cmp eax, 0xc
jne 0x5f4cf1
mov eax, dword [ecx]
xor ecx, ecx
test ecx, ecx
sete dl
seta bl
test eax, eax
xchg ebp, ebx
seta bl
xchg ebp, ebx
and edx, ebp
or edx, ebx
test dl, dl
je 0x5f4671
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x38]
and edx, 0xf0000000
mov ebx, dword [esp + 0x1dc]
movzx ebp, byte [ebx + 0x294]
shr edx, 0x1c
mov dword [esp + 0x7c], edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5f455a
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x16
call fcn.004cc160
mov eax, dword [esp + 0x18]
and eax, 0x1f
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x14]
nop
cmp eax, 9
ja 0x5f44ba
cmp eax, 7
jne 0x5f44a2
mov ecx, dword [ecx]
jmp 0x5f44d7
cmp eax, 8
jne 0x5f44ac
movzx ecx, byte [ecx]
jmp 0x5f44d7
cmp eax, 9
jne 0x5f4cb4
movzx ecx, word [ecx]
jmp 0x5f44d7
cmp eax, 0xa
jne 0x5f44c3
mov ecx, dword [ecx]
jmp 0x5f44d7
cmp eax, 0xb
jne 0x5f44cc
mov ecx, dword [ecx]
jmp 0x5f44d7
cmp eax, 0xc
jne 0x5f4cb4
mov ecx, dword [ecx]
mov dword [esp + 0x30], ecx
lea edi, [esp + 0x84]
xor eax, eax
call fcn.004716c8
mov ecx, dword [esp + 0x1dc]
mov edx, dword [ecx + 0x78]
lea ebx, [0x6ae520]
cmp edx, ebx
jne 0x5f4c9e
mov esi, dword [ecx + 0x7c]
lea edi, [esp + 0x84]
call fcn.004719e0
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x1dc]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.005ef660
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x1dc]
mov ebp, 1
xor esi, esi
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x64], ebp
mov ebp, 1
jmp 0x5f49d8
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x16
call fcn.004cc160
mov eax, dword [esp + 0x18]
and eax, 0x1f
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x14]
nop
cmp eax, 9
ja 0x5f45c1
cmp eax, 7
jne 0x5f45a9
mov ecx, dword [ecx]
jmp 0x5f45de
cmp eax, 8
jne 0x5f45b3
movzx ecx, byte [ecx]
jmp 0x5f45de
cmp eax, 9
jne 0x5f4983
movzx ecx, word [ecx]
jmp 0x5f45de
cmp eax, 0xa
jne 0x5f45ca
mov ecx, dword [ecx]
jmp 0x5f45de
cmp eax, 0xb
jne 0x5f45d3
mov ecx, dword [ecx]
jmp 0x5f45de
cmp eax, 0xc
jne 0x5f4983
mov ecx, dword [ecx]
mov dword [esp + 0x2c], ecx
lea edi, [esp + 0x84]
xor eax, eax
call fcn.004716c4
mov ecx, dword [esp + 0x1dc]
mov edx, dword [ecx + 0x78]
lea ebx, [0x6ae1a0]
cmp edx, ebx
jne 0x5f496d
mov esi, dword [ecx + 0x7c]
lea edi, [esp + 0x84]
call fcn.004719b8
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x1dc]
mov dword [esp], ecx
mov edx, dword [esp + 0x2c]
sub edx, eax
mov dword [esp + 4], edx
call fcn.005ef660
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x1dc]
mov ebp, dword [esp + 0x7c]
mov esi, 1
xor edi, edi
xor esi, esi
mov dword [esp + 0x68], esi
xor esi, esi
mov dword [esp + 0x1d4], esi
xor esi, esi
mov dword [esp + 0x64], esi
mov esi, 1
jmp 0x5f46b4
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x1e0], edx
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x1e8], eax
add esp, 0x1d8
ret
mov ecx, dword [esp + 0x1cc]
mov dword [ebx + edx + 8], ecx
mov edi, dword [esp + 0x50]
adc edi, 0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x1dc]
mov dword [esp + 0x50], edi
cmp edi, ecx
sete cl
xchg edi, ebx
setb bl
xchg edi, ebx
cmp esi, edx
setbe dl
and ecx, edx
or edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
je 0x5f48d8
mov byte [esp + 0x25], 0
mov edx, dword [ebx + 0x2ac]
add edx, 0xfffffffc
cmp eax, edx
jbe 0x5f46f3
mov edx, dword [0x8e2600]
xor edi, edi
jmp 0x5f4726
mov ecx, dword [ebx + 0x28c]
cmp eax, ecx
ja 0x5f4968
mov edx, dword [ebx + 0x290]
sub ecx, eax
sub edx, eax
neg edx
sar edx, 0x1f
and edx, eax
cmp ecx, 3
jbe 0x5f495e
mov edi, dword [ebx + 0x288]
mov edi, dword [edx + edi]
xor edx, edx
test edx, edx
jne 0x5f48ad
mov dword [esp + 0x58], edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], esi
test ebp, ebp
seta dl
and edx, 1
test dl, dl
jne 0x5f4757
xor edx, edx
xor ecx, ecx
xor ecx, ecx
mov dword [esp + 0x5c], ecx
xor ecx, ecx
jmp 0x5f47da
mov dword [esp], ebx
lea ecx, [0x665b20]
mov dword [esp + 4], ecx
lea edx, [esp + 0x25]
mov dword [esp + 8], edx
lea edx, [eax + 4]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebp
call fcn.005f0300
movzx eax, byte [esp + 0x25]
cmp al, 1
je 0x5f478b
cmp al, 2
jne 0x5f47b9
mov byte [esp + 0x27], al
lea edi, [esp + 0x17c]
xor eax, eax
call fcn.004716f7
mov ecx, dword [esp + 0x1dc]
mov edx, dword [ecx + 0xb8]
mov ebx, dword [ecx + 0xbc]
mov ebp, dword [esp + 0x58]
jmp 0x5f48f7
xor ecx, ecx
xor edx, edx
mov ebx, dword [esp + 0x1dc]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x5c], ecx
mov ecx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1cc], edx
mov ebx, dword [esp + 0x64]
inc ebx
mov edx, dword [esp + 0x68]
cmp edx, ebx
jae 0x5f4845
mov byte [esp + 0x23], cl
mov eax, dword [esp + 0x1d4]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x68fb60]
mov dword [esp + 0x10], eax
call fcn.0046c350
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x1d4], eax
mov edx, ecx
mov eax, dword [esp + 0x44]
movzx ecx, byte [esp + 0x23]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], edx
lea edx, [ebx - 1]
shl edx, 4
mov ebx, dword [esp + 0x1d4]
mov dword [ebx + edx], edi
mov byte [ebx + edx + 4], cl
mov edi, dword [esp + 0x5c]
mov dword [ebx + edx + 0xc], edi
mov edi, dword [0x90f128]
lea eax, [eax + ebp + 4]
mov ecx, esi
add esi, 1
test edi, edi
jne 0x5f4884
add ecx, 1
jmp 0x5f4693
mov dword [esp + 0x78], eax
call fcn.00471470
mov ebp, dword [esp + 0x1cc]
mov dword [edi], ebp
mov eax, dword [ebx + edx + 8]
mov dword [edi + 4], eax
add ecx, 1
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x7c]
jmp 0x5f4693
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1e8], eax
add esp, 0x1d8
ret
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x1d4]
jmp 0x5f4677
add edx, 0x24
dec ebx
mov ecx, dword [esp + 0x1dc]
test ebx, ebx
jle 0x5f4927
lea edi, [esp + 0x1a8]
mov esi, edx
call fcn.00471bb6
cmp dword [esp + 0x1ac], ebp
jne 0x5f48ec
lea edi, [esp + 0x17c]
lea esi, [esp + 0x1a8]
call fcn.00471bb6
jmp 0x5f4933
lea edi, [esp + 0x17c]
call fcn.004716f7
lea edi, [esp + 0x1a8]
lea esi, [esp + 0x17c]
call fcn.00471bb6
mov edx, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x1bc]
movzx eax, byte [esp + 0x27]
jmp 0x5f47bd
mov eax, 3
call fcn.004714e0
call fcn.00471550
mov dword [esp], edx
mov dword [esp + 4], ebx
lea eax, [0x677be0]
mov dword [esp + 8], eax
call fcn.00409df0
lea eax, [0x68a880]
mov dword [esp], eax
call fcn.0040bdb0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x6be9e5]
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 8], ecx
lea ecx, [0x67f5e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0046ab50
mov dword [edi + ebx + 8], ecx
inc ebp
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x1dc]
mov esi, dword [esp + 0x64]
mov esi, dword [esp + 0x74]
cmp ebp, ecx
ja 0x5f4c07
mov dword [esp + 0x54], ebp
mov byte [esp + 0x26], 0
mov ecx, dword [ebx + 0x2ac]
add ecx, 0xfffffffc
cmp eax, ecx
jbe 0x5f4a0c
mov ecx, dword [0x8e2600]
mov dword [esp + 0x6c], eax
xor eax, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
jmp 0x5f4a4c
mov ecx, dword [ebx + 0x28c]
cmp eax, ecx
ja 0x5f4c99
mov ebp, dword [ebx + 0x290]
sub ecx, eax
sub ebp, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
cmp ecx, 3
jbe 0x5f4c8f
mov ecx, dword [ebx + 0x288]
mov ebp, dword [ebp + ecx]
xor ecx, ecx
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x54]
test ecx, ecx
jne 0x5f4be7
mov dword [esp + 0x48], eax
test edx, edx
seta cl
and ecx, 1
test cl, cl
jne 0x5f4a79
xor ecx, ecx
xor ecx, ecx
mov byte [esp + 0x24], cl
xor ecx, ecx
mov dword [esp + 0x60], ecx
xor ecx, ecx
jmp 0x5f4b18
mov dword [esp + 0x68], esi
mov dword [esp + 0x1d4], edi
mov dword [esp], ebx
lea ecx, [0x665b20]
mov dword [esp + 4], ecx
lea ebp, [esp + 0x26]
mov dword [esp + 8], ebp
lea ebp, [eax + 4]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
call fcn.005f0300
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5f4bbc
movzx edx, byte [esp + 0x26]
cmp dl, 1
je 0x5f4ac4
cmp dl, 2
jne 0x5f4aee
lea edi, [esp + 0x17c]
xor eax, eax
call fcn.004716f7
mov ecx, dword [esp + 0x1dc]
mov ebx, dword [ecx + 0xb8]
mov ebp, dword [ecx + 0xbc]
mov esi, dword [esp + 0x40]
jmp 0x5f4c23
xor eax, eax
xor ecx, ecx
mov ebx, dword [esp + 0x1dc]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x1d4]
mov byte [esp + 0x24], dl
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x64]
inc ebx
cmp esi, ebx
jae 0x5f4b69
mov dword [esp + 0x1d0], ecx
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x68fb60]
mov dword [esp + 0x10], eax
call fcn.0046c350
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1d0]
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x74], esi
dec ebx
shl ebx, 4
mov esi, dword [esp + 0x40]
mov dword [edi + ebx], esi
movzx esi, byte [esp + 0x24]
xchg esi, eax
mov byte [edi + ebx + 4], al
xchg esi, eax
mov esi, dword [esp + 0x60]
mov dword [edi + ebx + 0xc], esi
mov esi, dword [0x90f128]
lea eax, [eax + edx + 4]
test esi, esi
je 0x5f49c0
mov esi, edi
call fcn.00471470
mov dword [edi], ecx
mov edx, dword [esi + ebx + 8]
mov dword [edi + 4], edx
mov edx, dword [esp + 0x7c]
mov edi, esi
jmp 0x5f49c0
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1e8], eax
add esp, 0x1d8
ret
mov dword [esp + 0x1e0], edi
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1e8], esi
add esp, 0x1d8
ret
mov eax, esi
mov ecx, dword [esp + 0x64]
mov edx, edi
jmp 0x5f4677
add ebx, 0x24
dec ebp
mov ecx, dword [esp + 0x1dc]
mov esi, dword [esp + 0x40]
test ebp, ebp
jle 0x5f4c5b
lea edi, [esp + 0x1a8]
mov esi, ebx
call fcn.00471bb6
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x1ac], ecx
jne 0x5f4c14
lea edi, [esp + 0x17c]
lea esi, [esp + 0x1a8]
call fcn.00471bb6
mov esi, dword [esp + 0x40]
jmp 0x5f4c67
lea edi, [esp + 0x17c]
call fcn.004716f7
lea edi, [esp + 0x1a8]
lea esi, [esp + 0x17c]
call fcn.00471bb6
mov ecx, dword [esp + 0x1b8]
mov ebx, dword [esp + 0x1bc]
mov eax, ebx
jmp 0x5f4af2
mov eax, 3
call fcn.004714e0
call fcn.00471550
mov dword [esp], edx
mov dword [esp + 4], ebx
lea eax, [0x677be0]
mov dword [esp + 8], eax
call fcn.00409df0
lea eax, [0x68a880]
mov dword [esp], eax
call fcn.0040bdb0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x6be9e5]
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 8], ecx
lea ecx, [0x67f5e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0046ab50
lea eax, [0x68a880]
mov dword [esp], eax
call fcn.0040bdb0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x6be9e5]
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 8], ecx
lea ecx, [0x67f5e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0046ab50
lea eax, [0x68a880]
mov dword [esp], eax
call fcn.0040bdb0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x6be9e5]
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 8], ecx
lea ecx, [0x67f5e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0046ab50
nop
call fcn.00470060
jmp fcn.005f4280