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

Disassembly:
mov ecx, dword [0x6cfe90]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x314]
cmp eax, dword [ecx + 8]
jbe 0x514d45
sub esp, 0x394
mov ebx, dword [esp + 0x398]
movzx ebp, byte [ebx + 0xa8]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5137bc
mov eax, 1
jmp 0x5137d0
mov dword [esp], ebx
call fcn.0051b580
movzx eax, byte [esp + 4]
mov ebx, dword [esp + 0x398]
test al, al
je 0x5137f7
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0xa0]
cmp ecx, eax
jbe 0x514d3f
mov ebp, dword [ebx + 0x94]
lea eax, [eax + eax*8]
lea ebp, [ebp + eax*8]
jmp 0x5137f9
xor ebp, ebp
test ebp, ebp
je 0x514016
mov eax, dword [ebp]
cmp eax, 0x12
je 0x513ed3
mov ecx, dword [ebp + 8]
mov dword [esp + 0xb8], ecx
mov edx, dword [ebp + 4]
mov dword [esp + 0xb4], edx
mov esi, dword [ebp + 0xc]
mov dword [esp + 0xb0], esi
cmp eax, 0x13
jne 0x513b03
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x58], eax
mov edi, dword [ebp + 0x28]
mov esi, dword [ebp + 0x20]
mov dword [esp + 0xcc], esi
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x18]
mov ebp, dword [ebp + 0x14]
nop
mov byte [ebx + 0xa8], 0
inc dword [ebx + 0xa4]
mov eax, dword [ebx + 0x98]
mov esi, dword [ebx + 0xa0]
cmp eax, esi
jbe 0x514d36
mov dword [esp + 0x5c], edi
mov eax, dword [ebx + 0x94]
lea esi, [esi + esi*8]
lea eax, [eax + esi*8]
cmp dword [eax], 2
sete al
mov byte [ebx + 0x8d], al
inc dword [ebx + 0xa0]
movzx eax, byte [ebx + 0xa8]
test al, al
je 0x5138a7
mov eax, 1
jmp 0x5138e9
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xa4], ecx
mov dword [esp], ebx
call fcn.0051b580
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x398]
mov ebp, dword [esp + 0xa8]
mov edi, dword [esp + 0x5c]
test al, al
je 0x51390f
mov eax, dword [ebx + 0x98]
mov esi, dword [ebx + 0xa0]
cmp esi, eax
jae 0x514d2d
mov eax, dword [ebx + 0x94]
lea esi, [esi + esi*8]
lea eax, [eax + esi*8]
jmp 0x513911
xor eax, eax
test eax, eax
je 0x513af4
mov esi, dword [eax]
cmp esi, 0x14
jne 0x513a8d
mov ebp, dword [eax + 0x24]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0xc4], ecx
mov edx, dword [eax + 0x30]
mov edi, dword [eax + 0x34]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0xc0], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0xac], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0xa4], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xa0], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x9c], ecx
mov eax, dword [eax + 0x14]
mov dword [esp + 0x98], eax
nop
mov byte [ebx + 0xa8], 0
inc dword [ebx + 0xa4]
mov eax, dword [ebx + 0x98]
mov ecx, dword [ebx + 0xa0]
cmp ecx, eax
jae 0x514d22
mov eax, dword [ebx + 0x94]
lea ecx, [ecx + ecx*8]
lea eax, [eax + ecx*8]
cmp dword [eax], 2
sete al
mov byte [ebx + 0x8d], al
inc dword [ebx + 0xa0]
movzx eax, byte [ebx + 0xa8]
test al, al
je 0x5139cf
mov eax, 1
jmp 0x513a09
mov dword [esp + 0x94], esi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edi
mov dword [esp], ebx
call fcn.0051b580
movzx eax, byte [esp + 4]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x398]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x28]
test al, al
je 0x513a2f
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0xa0]
cmp ecx, eax
jbe 0x514d1d
mov ecx, dword [ebx + 0x94]
lea eax, [eax + eax*8]
lea eax, [ecx + eax*8]
jmp 0x513a31
xor eax, eax
test eax, eax
je 0x513a7e
cmp esi, 0x14
mov esi, ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x98]
mov ecx, dword [esp + 0xa0]
mov edi, dword [esp + 0x5c]
jmp 0x513adc
mov byte [esp + 0x3a4], 0
add esp, 0x394
ret
mov esi, 0
mov esi, 0
mov dword [esp + 0xc4], esi
mov esi, 0
mov dword [esp + 0x24], esi
mov esi, 0
mov dword [esp + 0x28], esi
mov esi, 0
mov dword [esp + 0xc0], esi
mov esi, 0
mov dword [esp + 0x34], esi
mov esi, 0
mov dword [esp + 0x2c], esi
mov esi, 0
mov dword [esp + 0x30], esi
mov esi, 0
sete bl
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x68]
jmp 0x513e59
mov byte [esp + 0x3a4], 0
add esp, 0x394
ret
cmp eax, 0x14
jne 0x513dbe
mov edi, dword [ebp + 0x24]
mov dword [esp + 0x38], edi
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0xc4], ecx
mov ecx, dword [ebp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + 0x34]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0xc0], ecx
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x18]
mov ebp, dword [ebp + 0x14]
nop
mov byte [ebx + 0xa8], 0
inc dword [ebx + 0xa4]
mov esi, dword [ebx + 0x98]
mov edi, dword [ebx + 0xa0]
cmp esi, edi
jbe 0x514d14
mov dword [esp + 0x90], eax
mov esi, dword [ebx + 0x94]
lea edi, [edi + edi*8]
lea esi, [esi + edi*8]
cmp dword [esi], 2
xchg esi, ebx
sete bl
xchg esi, ebx
xchg esi, eax
mov byte [ebx + 0x8d], al
xchg esi, eax
inc dword [ebx + 0xa0]
movzx esi, byte [ebx + 0xa8]
xchg esi, eax
test al, al
xchg esi, eax
je 0x513b9f
mov esi, 1
jmp 0x513be6
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xa4], edx
mov dword [esp], ebx
call fcn.0051b580
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x398]
mov ebp, dword [esp + 0xac]
mov esi, eax
mov eax, dword [esp + 0x90]
xchg esi, eax
test al, al
xchg esi, eax
je 0x513c0e
mov esi, dword [ebx + 0x98]
mov edi, dword [ebx + 0xa0]
cmp esi, edi
jbe 0x514d0b
mov esi, dword [ebx + 0x94]
lea edi, [edi + edi*8]
lea esi, [esi + edi*8]
jmp 0x513c10
xor esi, esi
test esi, esi
je 0x513daf
cmp dword [esi], 0x13
jne 0x513d31
mov ebp, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x5c], ecx
mov edx, dword [esi + 0x20]
mov dword [esp + 0xcc], edx
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0xac], ecx
mov esi, dword [esi + 0x14]
nop
mov byte [ebx + 0xa8], 0
inc dword [ebx + 0xa4]
mov ecx, dword [ebx + 0x98]
mov edx, dword [ebx + 0xa0]
cmp ecx, edx
jbe 0x514d04
mov ecx, dword [ebx + 0x94]
lea edx, [edx + edx*8]
lea ecx, [ecx + edx*8]
cmp dword [ecx], 2
sete cl
mov byte [ebx + 0x8d], cl
inc dword [ebx + 0xa0]
movzx ecx, byte [ebx + 0xa8]
test cl, cl
je 0x513c97
mov ecx, 1
jmp 0x513cd8
mov dword [esp + 0x58], ebp
mov dword [esp + 0xa0], esi
mov dword [esp + 0x9c], edi
mov dword [esp], ebx
call fcn.0051b580
movzx eax, byte [esp + 4]
mov ebx, dword [esp + 0x398]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x9c]
mov ecx, eax
mov eax, dword [esp + 0x90]
test cl, cl
je 0x513cfe
mov ecx, dword [ebx + 0x98]
mov edx, dword [ebx + 0xa0]
cmp ecx, edx
jbe 0x514cfd
mov ecx, dword [ebx + 0x94]
lea edx, [edx + edx*8]
lea ecx, [ecx + edx*8]
jmp 0x513d00
xor ecx, ecx
test ecx, ecx
je 0x513d22
cmp eax, 0x14
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0xac]
mov eax, esi
mov esi, ecx
mov ecx, edi
mov edi, ebp
mov ebp, eax
mov eax, dword [esp + 0x5c]
jmp 0x513d4f
mov byte [esp + 0x3a4], 0
add esp, 0x394
ret
cmp eax, 0x14
mov eax, 0
mov edi, 0
mov eax, 0
mov dword [esp + 0xcc], eax
mov eax, 0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x34], edx
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edi
mov ecx, ebp
mov edx, dword [esp + 0x80]
mov edi, eax
mov ebp, esi
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x70]
jmp 0x513e3c
mov byte [esp + 0x3a4], 0
add esp, 0x394
ret
mov edi, ecx
mov eax, 0
mov dword [esp + 0x38], eax
mov ecx, 0
mov dword [esp + 0xc4], ecx
mov esi, 0
mov dword [esp + 0x28], esi
mov edi, 0
mov dword [esp + 0x24], edi
mov eax, 0
mov dword [esp + 0xc0], eax
mov eax, 0
mov dword [esp + 0x2c], eax
mov eax, 0
mov dword [esp + 0x30], eax
mov eax, 0
mov dword [esp + 0x34], eax
mov eax, 0
mov dword [esp + 0x5c], eax
mov eax, 0
mov dword [esp + 0x58], eax
mov eax, 0
mov dword [esp + 0xcc], eax
mov esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb8]
mov edi, ecx
sete al
mov ebx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov eax, ebp
mov edi, dword [esp + 0x5c]
mov ebp, ecx
mov ecx, edx
mov edx, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ecx
mov dword [esp + 0xbc], eax
test bl, bl
je 0x513ec2
test esi, esi
je 0x513ea3
mov dword [esp + 0x38], esi
mov ebx, dword [esp + 0x398]
mov edx, dword [ebx + 0xf0]
mov dword [esp + 0xac], edx
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x60]
jmp 0x514a77
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0x24]
jmp 0x514a4d
xor ebx, ebx
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x40], ebx
xor ebx, ebx
jmp 0x514034
mov ecx, dword [ebx + 0xd8]
lea eax, [ecx - 1]
cmp ecx, eax
jbe 0x51402f
mov eax, dword [ebx + 0xd4]
mov eax, dword [eax + ecx*4 - 4]
mov dword [ebx + 0xd0], eax
mov edx, dword [ebx + 0xdc]
mov eax, dword [ebx + 0xd8]
lea ecx, [eax - 1]
cmp edx, ecx
jb 0x51402a
mov dword [ebx + 0xd8], ecx
lea edi, [esp + 0x338]
xor eax, eax
call fcn.00464c9a
mov byte [esp + 0x338], 5
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
mov dword [esp + 0x33c], eax
mov dword [esp + 0x340], ecx
mov dword [esp + 0x344], edx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x348], eax
mov dword [esp + 0x34c], ecx
mov dword [esp + 0x350], edx
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
mov ebp, dword [ebp + 0x28]
mov dword [esp + 0x368], ecx
mov dword [esp + 0x36c], edx
mov dword [esp + 0x370], ebp
mov edi, dword [esp + 0x39c]
test byte [edi], al
mov ecx, dword [0x6cff38]
test ecx, ecx
je 0x513fbf
lea eax, [0x570780]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x338]
mov dword [esp + 8], eax
call fcn.004113a0
mov ebx, dword [esp + 0x398]
mov edi, dword [esp + 0x39c]
lea esi, [esp + 0x338]
call fcn.004650e4
nop
mov byte [ebx + 0xa8], 0
inc dword [ebx + 0xa4]
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0xa0]
cmp ecx, eax
jbe 0x514025
mov ecx, dword [ebx + 0x94]
lea eax, [eax + eax*8]
lea eax, [ecx + eax*8]
cmp dword [eax], 2
sete al
mov byte [ebx + 0x8d], al
inc dword [ebx + 0xa0]
mov byte [esp + 0x3a4], 1
add esp, 0x394
ret
mov byte [esp + 0x3a4], 0
add esp, 0x394
ret
call fcn.00464b30
call fcn.00464b70
call fcn.00464b30
mov dword [esp + 0xc8], esi
test ebx, ebx
sete dl
mov byte [esp + 0x23], dl
movzx ebp, byte [esp + 0x3a1]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x514178
cmp dword [eax], 0xe
jne 0x514178
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xac], ecx
mov ebp, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x398]
mov dword [edx + 0xd0], 0xa
mov edx, edi
lea edi, [esp + 0x2e0]
lea esi, [0x5b6d58]
call fcn.004650e4
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x2e4], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x2e8], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x2ec], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x2f0], ecx
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2f8], ebp
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x314], eax
mov dword [esp + 0x318], edx
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x31c], eax
mov dword [esp + 0x320], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x324], eax
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x334], al
mov edi, dword [esp + 0x39c]
test byte [edi], al
mov eax, dword [0x6cff38]
test eax, eax
je 0x51415d
lea eax, [0x570780]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x2e0]
mov dword [esp + 8], eax
call fcn.004113a0
mov edi, dword [esp + 0x39c]
lea esi, [esp + 0x2e0]
call fcn.004650e4
mov byte [esp + 0x3a4], 1
add esp, 0x394
ret
mov dword [esp + 0x3c], ebx
mov ebp, dword [eax]
cmp ebp, 0x15
jne 0x51438f
mov ebp, dword [eax + 0x10]
mov ecx, dword [eax + 0x18]
mov edi, dword [eax + 0x14]
test ebx, ebx
jne 0x51419a
cmp byte [eax + 0x44], 1
je 0x5141a4
cmp ebx, 1
jne 0x5141b6
cmp byte [esi], 0x21
jne 0x5141b6
mov edx, 1
xor edx, edx
mov byte [esp + 0x21], dl
mov edx, 1
jmp 0x5141c3
xor edx, edx
movzx edx, byte [esp + 0x23]
mov byte [esp + 0x21], dl
xor edx, edx
mov byte [esp + 0x22], dl
mov ebx, dword [esp + 0x398]
mov edx, dword [ebx + 0xd8]
lea eax, [edx - 1]
cmp edx, eax
jbe 0x514a46
mov eax, dword [ebx + 0xd4]
mov eax, dword [eax + edx*4 - 4]
mov dword [ebx + 0xd0], eax
mov edx, dword [ebx + 0xdc]
mov eax, dword [ebx + 0xd8]
dec eax
cmp edx, eax
jb 0x514a3f
mov dword [esp + 0xac], ecx
mov dword [ebx + 0xd8], eax
mov eax, edi
lea edi, [esp + 0x288]
mov edx, esi
lea esi, [0x5b6c50]
call fcn.004650e4
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x28c], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x290], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x294], ecx
mov dword [esp + 0x298], ebp
mov dword [esp + 0x29c], eax
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x2a0], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x2b8], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x2bc], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x2c0], ecx
mov dword [esp + 0x2c4], edx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c8], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x2cc], ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx + 0x20]
mov ebp, dword [ecx + 0x24]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x2d0], edx
mov dword [esp + 0x2d4], ebp
mov dword [esp + 0x2d8], eax
movzx edx, byte [esp + 0x22]
mov byte [esp + 0x2dc], dl
movzx edx, byte [esp + 0x21]
mov byte [esp + 0x2dd], dl
movzx ecx, byte [ecx + 0x44]
mov byte [esp + 0x2de], cl
mov edi, dword [esp + 0x39c]
test byte [edi], al
mov ecx, dword [0x6cff38]
test ecx, ecx
je 0x514334
lea eax, [0x570780]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x288]
mov dword [esp + 8], eax
call fcn.004113a0
mov ebx, dword [esp + 0x398]
mov edi, dword [esp + 0x39c]
lea esi, [esp + 0x288]
call fcn.004650e4
nop
mov byte [ebx + 0xa8], 0
inc dword [ebx + 0xa4]
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0xa0]
cmp eax, ecx
jae 0x514a3a
mov ecx, dword [ebx + 0x94]
lea eax, [eax + eax*8]
lea eax, [ecx + eax*8]
cmp dword [eax], 2
sete al
mov byte [ebx + 0x8d], al
inc dword [ebx + 0xa0]
mov byte [esp + 0x3a4], 1
add esp, 0x394
ret
cmp ebp, 0xa
jne 0x5144b1
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xac], ecx
mov ebp, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x398]
mov dword [edx + 0xd0], 0xe
mov edx, edi
lea edi, [esp + 0x230]
lea esi, [0x5b6db0]
call fcn.004650e4
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x234], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x238], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x23c], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x240], ecx
mov dword [esp + 0x244], eax
mov dword [esp + 0x248], ebp
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x264], eax
mov dword [esp + 0x268], edx
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x26c], eax
mov dword [esp + 0x270], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x274], eax
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x284], al
mov edi, dword [esp + 0x39c]
test byte [edi], al
mov eax, dword [0x6cff38]
test eax, eax
je 0x514496
lea eax, [0x570780]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x230]
mov dword [esp + 8], eax
call fcn.004113a0
mov edi, dword [esp + 0x39c]
lea esi, [esp + 0x230]
call fcn.004650e4
mov byte [esp + 0x3a4], 1
add esp, 0x394
ret
cmp ebp, 0xc
jne 0x5145d3
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xac], ecx
mov ebp, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x398]
mov dword [edx + 0xd0], 0x13
mov edx, edi
lea edi, [esp + 0x1d8]
lea esi, [0x5b6e08]
call fcn.004650e4
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x1dc], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x1e0], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x1e4], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1f0], ebp
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x208], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20c], eax
mov dword [esp + 0x210], edx
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x214], eax
mov dword [esp + 0x218], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x21c], eax
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x22c], al
mov edi, dword [esp + 0x39c]
test byte [edi], al
mov eax, dword [0x6cff38]
test eax, eax
je 0x5145b8
lea eax, [0x570780]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x1d8]
mov dword [esp + 8], eax
call fcn.004113a0
mov edi, dword [esp + 0x39c]
lea esi, [esp + 0x1d8]
call fcn.004650e4
mov byte [esp + 0x3a4], 1
add esp, 0x394
ret
movzx ebx, byte [esp + 0x3a0]
test bl, bl
je 0x51482d
cmp ebp, 7
jne 0x514704
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xac], ecx
mov ebx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov ebp, dword [esp + 0x398]
mov dword [ebp + 0xd0], 8
mov ebp, edi
lea edi, [esp + 0x180]
lea esi, [0x5b6d58]
call fcn.004650e4
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x184], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x188], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x18c], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ebx
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], ebp
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c4], eax
mov byte [esp + 0x1d4], dl
mov edi, dword [esp + 0x39c]
test byte [edi], al
mov eax, dword [0x6cff38]
test eax, eax
je 0x5146e9
lea eax, [0x570780]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x180]
mov dword [esp + 8], eax
call fcn.004113a0
mov edi, dword [esp + 0x39c]
lea esi, [esp + 0x180]
call fcn.004650e4
mov byte [esp + 0x3a4], 1
add esp, 0x394
ret
test bl, bl
je 0x51482d
cmp ebp, 8
jne 0x51482d
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xac], ecx
mov ebx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov ebp, dword [esp + 0x398]
mov dword [ebp + 0xd0], 0xb
mov ebp, edi
lea edi, [esp + 0x128]
lea esi, [0x5b6e60]
call fcn.004650e4
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x12c], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x130], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x134], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ebx
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], ebp
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x16c], eax
mov byte [esp + 0x17c], dl
mov edi, dword [esp + 0x39c]
test byte [edi], al
mov eax, dword [0x6cff38]
test eax, eax
je 0x514812
lea eax, [0x570780]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x128]
mov dword [esp + 8], eax
call fcn.004113a0
mov edi, dword [esp + 0x39c]
lea esi, [esp + 0x128]
call fcn.004650e4
mov byte [esp + 0x3a4], 1
add esp, 0x394
ret
mov ebp, dword [esp + 0x58]
test ebp, ebp
jne 0x514845
mov ebp, dword [esp + 0x3c]
test ebp, ebp
je 0x514980
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x398]
mov eax, dword [ebx + 0xd8]
lea edx, [eax - 1]
cmp eax, edx
jbe 0x514a31
mov edx, dword [ebx + 0xd4]
mov eax, dword [edx + eax*4 - 4]
mov dword [ebx + 0xd0], eax
mov edx, dword [ebx + 0xdc]
mov eax, dword [ebx + 0xd8]
dec eax
cmp edx, eax
jb 0x514a2a
mov dword [ebx + 0xd8], eax
mov eax, edi
lea edi, [esp + 0xd0]
mov edx, esi
lea esi, [0x5b6eb8]
call fcn.004650e4
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], ebp
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x114], eax
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x124], al
mov edi, dword [esp + 0x39c]
test byte [edi], al
mov eax, dword [0x6cff38]
test eax, eax
je 0x514965
lea eax, [0x570780]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xd0]
mov dword [esp + 8], eax
call fcn.004113a0
mov edi, dword [esp + 0x39c]
lea esi, [esp + 0xd0]
call fcn.004650e4
mov byte [esp + 0x3a4], 1
add esp, 0x394
ret
test bl, bl
je 0x514991
mov ecx, 0x1a
lea edx, [0x58245f]
jmp 0x51499c
mov ecx, 0x19
lea edx, [0x581f01]
nop
mov ebx, dword [eax + 4]
mov ebp, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov esi, dword [esp + 0x398]
mov dword [esi], 4
mov dword [esi + 0x24], ecx
mov ecx, dword [0x6cff38]
test ecx, ecx
je 0x5149cd
call fcn.00464ac0
mov dword [edi], edx
mov ecx, dword [esi + 0x20]
mov dword [edi + 4], ecx
mov dword [esi + 0x20], edx
mov ecx, dword [esp + 0xb4]
mov dword [esi + 0x28], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esi + 0x2c], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esi + 0x30], ecx
mov dword [esi + 8], 0x22
mov ecx, dword [0x6cff38]
test ecx, ecx
je 0x514a09
mov ecx, dword [esi + 4]
call fcn.00464ab0
mov dword [edi], ecx
lea ecx, [0x584ffc]
mov dword [esi + 4], ecx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ebp
mov byte [esp + 0x3a4], 0
add esp, 0x394
ret
mov ecx, eax
call fcn.00464b70
mov ecx, eax
mov eax, edx
call fcn.00464b30
call fcn.00464b30
mov ecx, eax
call fcn.00464b70
mov ecx, edx
call fcn.00464b30
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0xc8]
jmp 0x514034
lea eax, [ebp + 1]
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xbc]
mov ebp, dword [esp + 0x48]
cmp ebp, edx
jge 0x514c39
mov ecx, dword [ebx + 0xf0]
cmp ebp, ecx
jae 0x514cf6
mov ecx, dword [ebx + 0xec]
lea edi, [ebp + ebp*2]
lea eax, [ecx + edi*8]
mov eax, dword [eax + 4]
lea ecx, [ecx + edi*8]
cmp esi, eax
je 0x514aac
xor eax, eax
jmp 0x514aee
mov dword [esp + 0xa8], edi
mov ecx, dword [ecx]
mov dword [esp], ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004030e0
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x398]
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0xa8]
test al, al
je 0x514a5d
mov ecx, dword [ebx + 0xf0]
cmp ebp, ecx
jae 0x514cef
mov eax, dword [ebx + 0xec]
lea ecx, [eax + edi*8]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + edi*8 + 0xc]
mov eax, dword [eax]
test ecx, ecx
ja 0x514b22
xor edx, edx
xor ebp, ebp
xor esi, esi
jmp 0x514b74
mov dword [esp + 0xac], ecx
mov dword [esp + 0x390], eax
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
lea eax, [0x557560]
mov dword [esp + 0x10], eax
call fcn.0044b670
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, eax
mov esi, ecx
mov eax, dword [esp + 0x390]
mov ecx, dword [esp + 0xac]
mov dword [esp + 0xc8], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], edx
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004653a0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + eax]
mov ebx, dword [esp + 0x40]
cmp ebx, edx
jb 0x514baf
mov ebp, dword [esp + 0xc8]
jmp 0x514bea
mov ecx, dword [esp + 0xc8]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
lea ecx, [0x557560]
mov dword [esp + 0x10], ecx
call fcn.0044b670
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov ebx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], edx
mov dword [esp + 0xc8], ebp
add ecx, ebp
mov dword [esp], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004653a0
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x398]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0xc8]
jmp 0x514c3f
xor edx, edx
xor ebp, ebp
xor esi, esi
test edx, edx
jne 0x514cd7
mov dword [ebx], 4
mov dword [ebx + 0x24], 0x14
mov eax, dword [0x6cff38]
test eax, eax
je 0x514c68
mov eax, dword [ebx + 0x20]
call fcn.00464ab0
mov dword [edi], eax
lea eax, [0x5800de]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0xb4]
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0xb8]
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0xb0]
mov dword [ebx + 0x30], eax
mov dword [ebx + 8], 0x1a
mov eax, dword [0x6cff38]
test eax, eax
je 0x514caa
mov eax, dword [ebx + 4]
call fcn.00464ab0
mov dword [edi], eax
lea eax, [0x582445]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x1c], eax
mov byte [esp + 0x3a4], 0
add esp, 0x394
ret
mov ebx, edx
mov dword [esp + 0xc8], esi
mov edx, dword [esp + 0x54]
mov esi, ebp
mov ebp, dword [esp + 0x4c]
jmp 0x514a4d
mov eax, ebp
call fcn.00464b30
mov eax, ebp
call fcn.00464b30
mov eax, edx
call fcn.00464b30
mov eax, edx
call fcn.00464b30
mov eax, edi
mov ecx, esi
call fcn.00464b30
mov eax, edi
mov ecx, esi
call fcn.00464b30
call fcn.00464b30
mov edx, eax
mov eax, ecx
mov ecx, edx
call fcn.00464b30
mov ecx, eax
mov eax, esi
call fcn.00464b30
mov ecx, eax
mov eax, esi
call fcn.00464b30
call fcn.00464b30
nop
call fcn.004636b0
jmp fcn.00513780