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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xdc
mov edx, dword [esp + 0xf8]
mov dword [esp + 0x38], 0
mov dword [esp + 0x88], 0
mov edi, dword [esp + 0x104]
mov dword [esp + 0x8c], 0
test edx, edx
jne 0x5fcf08
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x108]
mov dword [eax], 0
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x5fd0d0
mov ecx, dword [esp + 0xf4]
mov edx, dword [ecx + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.004a0230
mov ebx, eax
test eax, eax
je 0x5fd172
mov dword [esp], eax
call fcn.004aa2f0
mov ebp, eax
test eax, eax
jle 0x5fd310
lea eax, [eax*8]
test edi, edi
cmove edi, eax
cmp edi, dword [esp + 0x100]
jae 0x5fd028
cmp dword [esp + 0xfc], 1
je 0x5fd188
mov eax, dword [esp + 0xfc]
test eax, eax
jne 0x5fd028
cmp dword [esp + 0x100], 0xbff
jbe 0x5fcfb3
cmp edi, 0xff
ja 0x5fd1a5
cmp dword [esp + 0x100], 0x7ff
jbe 0x5fcfcc
cmp edi, 0xdf
ja 0x5fd1a5
cmp dword [esp + 0x100], 0x3ff
jbe 0x5fcfe5
cmp edi, 0x9f
ja 0x5fd1a5
call fcn.0049b030
mov dword [esp + 8], 0x6cf454
mov dword [esp + 4], 0x57
mov dword [esp], str..._crypto_ffc_ffc_params_generate.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0x72
mov dword [esp], 0xa
call fcn.0049b230
lea esi, [esi]
mov eax, dword [esp + 0x108]
mov dword [esp + 0x34], 0
mov dword [eax], 0x20000
mov eax, dword [esp + 0xf4]
mov edi, dword [eax + 0x10]
test edi, edi
je 0x5fd118
mov dword [esp + 0x3c], 0
xor esi, esi
xor edi, edi
xor ecx, ecx
xor ebp, ebp
mov dword [esp + 8], 0x31a
mov dword [esp + 4], str..._crypto_ffc_ffc_params_generate.c
mov dword [esp], ecx
call fcn.004ce2f0
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], 0x31b
mov dword [esp + 4], str..._crypto_ffc_ffc_params_generate.c
mov dword [esp], eax
call fcn.004ce2f0
test esi, esi
je 0x5fd09f
mov dword [esp], esi
call fcn.00455d70
mov dword [esp], esi
call fcn.00455b50
mov dword [esp], edi
call fcn.0045db50
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0049ee00
mov dword [esp], ebx
call fcn.004a02b0
add esp, 0xdc
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
test edi, edi
jne 0x5fd140
cmp dword [esp + 0x100], 0x7ff
mov eax, str.SHA_256
mov edx, 0x6cf41c
cmovbe eax, edx
cmp dword [esp + 0x100], 0x800
sbb edi, edi
and edi, 0xffffffa0
add edi, 0x100
mov edx, dword [esp + 0xf4]
mov edx, dword [edx + 0x30]
jmp 0x5fcf31
mov dword [esp + 8], 0x31b
xor esi, esi
xor ebp, ebp
mov dword [esp + 4], str..._crypto_ffc_ffc_params_generate.c
mov dword [esp], 0
call fcn.004ce2f0
jmp 0x5fd09f
cmp edi, 0xa0
je 0x5fd320
mov eax, str.SHA_224
cmp edi, 0xe0
je 0x5fd102
cmp edi, 0x100
je 0x5fd418
mov eax, dword [esp + 0x108]
mov dword [eax], 0x20
mov dword [esp + 0x34], 0
xor ebx, ebx
jmp 0x5fd03d
cmp dword [esp + 0x100], 0x400
jne 0x5fd2b0
cmp edi, 0xa0
jne 0x5fd2b0
call fcn.0049edd0
mov dword [esp + 0x34], eax
test eax, eax
je 0x5fd310
mov eax, dword [esp + 0xf0]
mov dword [esp], eax
call fcn.00455870
mov esi, eax
test eax, eax
je 0x5fd03d
mov dword [esp], eax
call fcn.00455c00
mov dword [esp], esi
call fcn.00455e00
mov dword [esp], esi
mov dword [esp + 0x64], eax
call fcn.00455e00
mov dword [esp], esi
mov dword [esp + 0x68], eax
call fcn.00455e00
mov dword [esp], esi
mov dword [esp + 0x6c], eax
call fcn.00455e00
mov dword [esp], esi
mov dword [esp + 0x48], eax
call fcn.00455e00
mov ecx, eax
test eax, eax
je 0x5fd6fb
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 0x14]
test eax, eax
cmove eax, ebp
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x5fd330
mov eax, dword [esp + 0xf4]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xf4]
sete dl
mov eax, dword [eax + 4]
test eax, eax
sete al
cmp dl, al
je 0x5fd378
mov dword [esp + 0x54], 0
mov eax, 0x800
mov edx, dword [esp + 0x108]
mov dword [edx], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 8], 0x31b
xor edi, edi
xor ebp, ebp
mov dword [esp + 4], str..._crypto_ffc_ffc_params_generate.c
mov dword [esp], eax
call fcn.004ce2f0
jmp 0x5fd097
cmp dword [esp + 0x100], 0x800
jne 0x5fd2cc
lea eax, [edi - 0xe0]
and eax, 0xffffffdf
je 0x5fd1a5
call fcn.0049b030
mov dword [esp + 8], 0x6cf454
mov dword [esp + 4], 0x4d
mov dword [esp], str..._crypto_ffc_ffc_params_generate.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0x7f
mov dword [esp], 5
call fcn.0049b230
jmp 0x5fd028
mov dword [esp + 0x34], 0
jmp 0x5fd03d
mov eax, 0x6cf41c
jmp 0x5fd102
test byte [esp + 0x38], 1
je 0x5fd428
mov eax, dword [esp + 0x54]
test eax, eax
je 0x5fdbf8
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 0x18]
test eax, eax
js 0x5fdbc0
test byte [esp + 0x38], 2
je 0x5fd38b
mov eax, dword [esp + 0xf4]
mov edx, dword [eax + 8]
test edx, edx
je 0x5fdc02
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x5fd38b
test byte [esp + 0x38], 1
je 0x5fd448
mov dword [esp], esi
mov dword [esp + 0x3c], ecx
call fcn.00455e00
mov dword [esp], esi
mov dword [esp + 0x5c], eax
call fcn.00455e00
mov dword [esp + 0x40], eax
test eax, eax
je 0x5fd3cb
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
shl eax, 3
cmp eax, edi
jae 0x5fd70c
mov eax, dword [esp + 0x108]
mov dword [eax], 0x40000
mov dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x54]
xor edi, edi
xor ebp, ebp
lea esi, cs:[esi]
mov eax, dword [esp + 0xf4]
cmp ecx, dword [eax + 0x10]
jne 0x5fd05f
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], 0x31b
mov dword [esp + 4], str..._crypto_ffc_ffc_params_generate.c
mov dword [esp], eax
call fcn.004ce2f0
jmp 0x5fd097
mov eax, str.SHA_256
jmp 0x5fd102
test byte [esp + 0x38], 2
jne 0x5fd360
mov eax, dword [esp + 0xf4]
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
test eax, eax
je 0x5fd38b
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x3c], 0
mov eax, dword [eax + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ecx
call fcn.0045da40
mov edi, eax
test eax, eax
je 0x5fd6f0
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0045dbb0
test eax, eax
je 0x5fd6f0
test byte [esp + 0x38], 2
mov ecx, dword [esp + 0x48]
je 0x5fd4e1
mov eax, dword [esp + 0x108]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 8]
mov dword [esp + 4], edi
mov dword [esp], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
call fcn.004c2ec0
mov ecx, dword [esp + 0x48]
test eax, eax
je 0x5fd6f0
mov dword [esp + 0x48], ecx
call fcn.0045a590
mov dword [esp + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00454ac0
test eax, eax
je 0x5fd6f0
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], esi
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004565d0
mov ecx, dword [esp + 0x48]
test eax, eax
je 0x5fd6f0
cmp dword [esp + 0x54], 0
je 0x5fdc7a
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x50], eax
add eax, 1
je 0x5fdc7a
mov dword [esp], ebx
mov dword [esp + 0x60], ecx
call fcn.004aa2f0
mov dword [esp + 0x58], eax
test eax, eax
jle 0x5fd6e3
call fcn.0049edd0
mov ebp, eax
test eax, eax
je 0x5fd6e3
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x4c], 1
jmp 0x5fd69c
mov eax, dword [esp + 0x44]
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.0049eea0
test eax, eax
je 0x5fd6d7
mov dword [esp + 8], 4
mov dword [esp + 4], str.ggenffc_validate_LN
mov dword [esp], ebp
call fcn.0049eea0
test eax, eax
je 0x5fd6d7
lea eax, [esp + 0x90]
mov dword [esp + 8], 3
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0049eea0
test eax, eax
je 0x5fd6d7
xor ecx, ecx
lea eax, [esp + 0x90]
mov dword [esp], ebp
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
call fcn.0049f180
test eax, eax
je 0x5fd6d7
mov eax, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
lea eax, [esp + 0x90]
mov dword [esp], eax
call fcn.0045b060
test eax, eax
je 0x5fd6d7
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.00457b30
test eax, eax
je 0x5fd6d7
call fcn.0045a590
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.0045ba30
test eax, eax
jg 0x5fdee8
add dword [esp + 0x4c], 1
mov eax, dword [esp + 0x4c]
cmp eax, 0x10000
je 0x5fd6d7
movzx eax, byte [esp + 0x50]
mov dword [esp], ebp
mov byte [esp + 0x90], al
movzx eax, word [esp + 0x4c]
rol ax, 8
mov word [esp + 0x91], ax
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
call fcn.0049ee80
test eax, eax
jne 0x5fd59c
mov dword [esp], ebp
mov ebx, dword [esp + 0x48]
call fcn.0049ee00
mov eax, dword [esp + 0x108]
mov dword [eax], 0x400
mov ecx, dword [esp + 0x54]
xor ebp, ebp
jmp 0x5fd3e0
mov dword [esp + 0x3c], 0
xor edi, edi
xor ebp, ebp
jmp 0x5fd3e0
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 0x283
mov dword [esp + 4], str..._crypto_ffc_ffc_params_generate.c
mov dword [esp], eax
mov dword [esp + 0x4c], ecx
call fcn.004ce330
mov dword [esp + 0x3c], eax
test eax, eax
je 0x5fd3cb
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
test eax, eax
je 0x5fdbd2
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0xf8]
lea eax, [eax*4 - 1]
test edx, edx
jne 0x5fdc71
mov edx, dword [esp + 0xf4]
mov edx, dword [edx + 0x18]
mov dword [esp + 0x74], edx
cmp edx, eax
jg 0x5fdc14
mov eax, dword [esp + 0x100]
mov dword [esp + 0x50], ecx
sub eax, 1
mov dword [esp + 0x4c], eax
call fcn.0045a590
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp], ecx
call fcn.00462040
test eax, eax
je 0x5fdbb3
mov eax, dword [esp + 0x4c]
shl ebp, 3
xor edx, edx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
shr edi, 3
div ebp
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x50], esi
lea ebp, [esp + 0x90]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x48], eax
xor eax, eax
mov esi, eax
lea esi, [esi]
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.004aa2f0
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00456010
mov edx, dword [esp + 0x60]
mov dword [esp + 0x58], eax
cmp edi, edx
jge 0x5fda78
sub edx, edi
mov dword [esp + 0x60], edx
jmp 0x5fd8e9
cmp dword [esp + 0x48], ebx
je 0x5fd85e
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.0040e8c0
test eax, eax
jle 0x5fd918
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0049f7e0
test eax, eax
je 0x5fd918
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x40]
add eax, ebp
or byte [eax], 0x80
or byte [eax + edi - 1], 1
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0045b060
test eax, eax
je 0x5fd918
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00589c60
test eax, eax
jg 0x5fd940
cmp dword [esp + 0x48], ebx
je 0x5fdba1
test eax, eax
jne 0x5fd918
mov eax, esi
mov dword [esp + 4], 0
add esi, 1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
call fcn.00588a60
test eax, eax
jne 0x5fd830
lea esi, [esi]
mov edx, dword [esp + 0xf4]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
cmp dword [edx + 0x10], eax
je 0x5fdf4d
mov ecx, eax
xor edi, edi
xor ebp, ebp
jmp 0x5fd05f
mov eax, dword [esp + 0xf8]
test eax, eax
jne 0x5fd96d
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.0045ba30
test eax, eax
jne 0x5fdd75
mov eax, dword [esp + 0x10c]
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.00588a60
test eax, eax
je 0x5fd918
mov eax, dword [esp + 0x10c]
mov dword [esp + 8], 0
mov dword [esp + 4], 3
mov dword [esp], eax
call fcn.00588a60
test eax, eax
je 0x5fd918
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
mov dword [esp + 4], ebx
mov dword [esp], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x108]
lea eax, [esp + 0x88]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x74]
call fcn.005fca90
test eax, eax
jg 0x5fdcd6
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x48], eax
jne 0x5fd918
cmp eax, ebx
jne 0x5fd7f8
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov dword [esp + 0x54], eax
mov eax, 1
jmp 0x5fd27f
lea eax, [ebp + edx]
mov dword [esp + 0x60], edx
mov dword [esp + 0x70], eax
jmp 0x5fdb74
cmp dword [esp + 0x48], ebx
je 0x5fdabe
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.0040e8c0
test eax, eax
jle 0x5fd918
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0049f7e0
test eax, eax
je 0x5fd918
mov ecx, dword [esp + 0x60]
cmp edi, ecx
jle 0x5fdb16
mov eax, edi
mov dword [esp + 4], 0
sub eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [esp + 0x40]
or byte [esp + 0x90], 0x80
or byte [ebp + edi - 1], 1
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0045b060
test eax, eax
je 0x5fd918
mov ecx, dword [esp + 0x10c]
mov eax, dword [esp + 0x40]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00589c60
test eax, eax
jg 0x5fd940
cmp dword [esp + 0x48], ebx
je 0x5fdba1
test eax, eax
jne 0x5fd918
mov eax, esi
mov dword [esp + 4], 0
add esi, 1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
call fcn.00588a60
test eax, eax
jne 0x5fda90
jmp 0x5fd918
mov eax, dword [esp + 0x108]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
or dword [eax], 0x10
mov ecx, dword [esp + 0x54]
xor edi, edi
xor ebp, ebp
jmp 0x5fd3e0
mov dword [esp + 0x54], 0
mov eax, 0x200
jmp 0x5fd27f
mov eax, dword [esp + 0xf8]
test eax, eax
jne 0x5fdc2e
mov eax, dword [esp + 0x108]
mov dword [eax], 0x200
xor edi, edi
xor ecx, ecx
xor ebp, ebp
jmp 0x5fd3e0
mov eax, 0x200
jmp 0x5fd27f
mov dword [esp + 0x54], 0
mov eax, 0x400
jmp 0x5fd27f
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x54]
xor ebp, ebp
xor edi, edi
mov dword [eax], 0x1000
jmp 0x5fd3e0
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 0x28e
mov dword [esp + 4], str..._crypto_ffc_ffc_params_generate.c
mov dword [esp], eax
mov dword [esp + 0x4c], ecx
call fcn.004ce330
mov ecx, dword [esp + 0x4c]
test eax, eax
je 0x5fdbea
mov edx, dword [esp + 0x100]
mov dword [esp + 0x54], eax
lea edx, [edx*4 - 1]
mov dword [esp + 0x74], edx
jmp 0x5fd77b
mov dword [esp + 0x74], eax
jmp 0x5fd77b
cmp dword [esp + 0xf8], 0
jne 0x5fdd8f
mov eax, dword [esp + 0x10c]
mov dword [esp + 8], 1
mov dword [esp + 4], 3
mov dword [esp], eax
call fcn.00588a60
mov ecx, dword [esp + 0x54]
mov ebp, eax
test eax, eax
je 0x5fd3e0
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0xf8]
mov ecx, dword [esp + 0x54]
shr eax, 1
xor ebp, 1
and ebp, eax
and ebp, 1
add ebp, 1
jmp 0x5fd3e0
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 8], 1
mov eax, dword [esp + 0x10c]
mov esi, dword [esp + 0x50]
mov dword [esp + 4], 2
mov dword [esp + 0x48], ecx
mov dword [esp], eax
call fcn.00588a60
test eax, eax
je 0x5fdbb3
cmp dword [esp + 0xf8], 0
mov ecx, dword [esp + 0x48]
jne 0x5fdd55
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x88], eax
jne 0x5fdbb3
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x48], ecx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.0045ba30
mov ecx, dword [esp + 0x48]
test eax, eax
jne 0x5fdbb3
mov eax, dword [esp + 0x38]
and eax, 3
sub eax, 1
jne 0x5fd45e
xor eax, eax
xor edi, edi
mov dword [esp + 0xf8], eax
jmp 0x5fdcb5
mov eax, dword [esp + 0x108]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov dword [eax], 0x4000
jmp 0x5fdbb3
lea eax, [esp + 0x8c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x64]
mov edx, edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, esi
call fcn.005fcdf0
test eax, eax
je 0x5fd6f0
xor edx, edx
mov dword [esp + 0xf8], edx
mov eax, dword [esp + 0x10c]
mov dword [esp + 8], 1
mov dword [esp + 4], 3
mov dword [esp], eax
call fcn.00588a60
test eax, eax
je 0x5fd6f0
mov eax, dword [esp + 0xf4]
mov ebp, dword [esp + 0x5c]
mov eax, dword [eax]
cmp eax, ebp
je 0x5fde24
mov dword [esp], eax
call fcn.0045a830
mov dword [esp], ebp
call fcn.0045abc0
mov edx, dword [esp + 0xf4]
mov dword [edx], eax
mov eax, dword [esp + 0xf4]
mov ebp, dword [esp + 0x40]
mov eax, dword [eax + 4]
cmp eax, ebp
je 0x5fde50
mov dword [esp], eax
call fcn.0045a830
mov dword [esp], ebp
call fcn.0045abc0
mov edx, dword [esp + 0xf4]
mov dword [edx + 4], eax
mov eax, dword [esp + 0xf4]
mov ebp, dword [esp + 0x64]
mov eax, dword [eax + 8]
cmp eax, ebp
je 0x5fde7c
mov dword [esp], eax
call fcn.0045a830
mov dword [esp], ebp
call fcn.0045abc0
mov edx, dword [esp + 0xf4]
mov dword [edx + 8], eax
mov eax, dword [esp + 0xf4]
cmp dword [eax], 0
je 0x5fd6f0
cmp dword [eax + 4], 0
je 0x5fd6f0
cmp dword [eax + 8], 0
je 0x5fd6f0
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
call fcn.004c26a0
test eax, eax
je 0x5fd6f0
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0xf4]
mov dword [edx + 0x24], eax
jmp 0x5fdcb5
mov dword [esp], ebp
mov ebx, dword [esp + 0x48]
call fcn.0049ee00
cmp dword [esp + 0xf8], 0
je 0x5fdf0e
mov dword [esp + 0xf8], 1
jmp 0x5fddd3
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.0045ba30
mov dword [esp + 0xf8], 1
test eax, eax
je 0x5fdc88
mov eax, dword [esp + 0x108]
mov dword [eax], 0x8000
jmp 0x5fd6f0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x54], eax
jmp 0x5fd288