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

Disassembly:
sub esp, 0x58
push ebx
push ebp
mov ebp, dword [esp + 0x6c]
xor ebx, ebx
push esi
push edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
cmp ebp, ebx
je 0x4635fe
cmp dword [ebp + 0x1378], 0xc0dedbad
jne 0x4635fe
mov ecx, dword [esp + 0x6c]
xor esi, esi
push 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x78], esi
call fcn.00460ba0
add esp, 4
test eax, eax
je 0x4625c8
mov eax, ecx
call fcn.00462040
mov ecx, dword [ebp + 8]
cmp ecx, esi
je 0x46280b
mov eax, dword [ebp + 0x24]
cmp eax, 2
jle 0x4625e2
cmp eax, 0xf
jge 0x4625e2
mov dword [ecx], ebp
cmp dword [ebp + 8], esi
je 0x46280b
mov eax, dword [ebp + 0x24]
cmp eax, 2
jl 0x46280b
cmp eax, 0xf
jge 0x46280b
xor ecx, ecx
cmp eax, 8
setle cl
push ecx
push edi
push ebp
call fcn.00468d40
add esp, 0xc
cmp edx, esi
jg 0x46280b
jl 0x462625
cmp eax, esi
jae 0x46280b
mov eax, dword [ebp + 0x24]
cmp eax, 3
jne 0x46268a
mov edx, dword [ebp + 0xd20]
mov ecx, dword [ebp + 0xd24]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp + 0xd28]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0xd2c]
mov dword [eax + 8], edx
mov edx, dword [edi]
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 4]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [edi + 8]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
call fcn.0046d3e0
push edx
push eax
push 0x74c6cc
push ebp
call fcn.00463c60
add esp, 0x30
jmp 0x4627d7
cmp eax, 4
jne 0x4626ec
mov edx, dword [ebp + 0xd20]
mov ecx, dword [ebp + 0xd24]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp + 0xd28]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0xd2c]
mov dword [eax + 8], edx
mov edx, dword [edi]
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 4]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [edi + 8]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
call fcn.0046d3e0
push edx
push eax
push 0x74c69c
push ebp
call fcn.00463c60
add esp, 0x30
jmp 0x4627d7
mov eax, dword [ebp + 0x88]
mov ecx, dword [ebp + 0x8c]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x46276e
mov edx, dword [ebp + 0xd20]
push ecx
mov ecx, dword [ebp + 0x98]
push eax
mov eax, dword [ebp + 0x9c]
push eax
push ecx
mov ecx, dword [ebp + 0xd24]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp + 0xd28]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0xd2c]
mov dword [eax + 8], edx
mov edx, dword [edi]
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 4]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [edi + 8]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
call fcn.0046d3e0
add esp, 0x20
push edx
push eax
push 0x74c648
push ebp
call fcn.00463c60
add esp, 0x20
jmp 0x4627d7
mov edx, dword [ebp + 0x9c]
mov eax, dword [ebp + 0x98]
mov ecx, dword [ebp + 0xd20]
push edx
mov edx, dword [ebp + 0xd24]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp + 0xd28]
mov dword [eax + 4], edx
mov edx, dword [ebp + 0xd2c]
mov dword [eax + 8], ecx
mov ecx, dword [edi]
mov dword [eax + 0xc], edx
mov edx, dword [edi + 4]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edi + 8]
mov dword [eax + 4], edx
mov edx, dword [edi + 0xc]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.0046d3e0
add esp, 0x20
push edx
push eax
push 0x74c600
push ebp
call fcn.00463c60
add esp, 0x18
cmp dword [ebp + 0x24], 8
jle 0x4627f3
mov eax, dword [ebp + 8]
push 2
push eax
call fcn.00469c30
add esp, 8
mov dword [esp + 0x10], 1
mov ebx, 0x1c
push 1
mov ecx, ebx
mov esi, ebp
call fcn.00462090
add esp, 4
jmp case.0x462817.1
mov eax, dword [ebp + 0x24]
cmp eax, 0x10
ja case.default.0x462817
jmp dword [eax*4 + 0x46360c]
push ebp
call fcn.0048e200
mov ebx, eax
add esp, 4
cmp ebx, esi
jne case.0x462817.1
mov eax, 2
mov ecx, ebp
call fcn.00461a70
push 1
lea ecx, [esp + 0x4c]
push ebp
push ecx
call fcn.00472a80
mov edx, dword [eax]
mov dword [edi], edx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov edx, dword [eax + 8]
mov dword [edi + 8], edx
mov eax, dword [eax + 0xc]
add esp, 0xc
mov dword [edi + 0xc], eax
mov dword [esp + 0x74], 0xffffffff
jmp case.0x462817.1
push ebp
call fcn.00460d70
mov ebx, eax
add esp, 4
cmp ebx, esi
jne case.0x462817.1
push 2
lea ecx, [esp + 0x5c]
push ebp
push ecx
call fcn.00472a80
mov edx, dword [eax]
mov dword [edi], edx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov edx, dword [eax + 8]
mov dword [edi + 8], edx
mov eax, dword [eax + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 0x650]
add esp, 0xc
cmp eax, esi
je 0x4628c1
cdq
push 0xa
push edx
push eax
push ebp
call fcn.00461770
add esp, 0x10
mov eax, dword [ebp + 0x654]
cmp eax, esi
je 0x4628d9
cdq
push 2
push edx
push eax
push ebp
call fcn.00461770
add esp, 0x10
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x30]
push edx
push ebp
call fcn.004605e0
mov ebx, eax
add esp, 0xc
cmp ebx, 0x59
jne 0x46291d
lea eax, [ebx - 0x58]
mov ecx, ebp
call fcn.00461a70
lea eax, [ebp + 0xc]
push eax
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x28]
push ebp
push ecx
add eax, 0x24
push eax
call fcn.0048abe0
add esp, 0x10
xor ebx, ebx
jmp case.0x462817.1
cmp dword [ebp + 0x1274], esi
je 0x46293b
push 0x74c5d4
push ebp
call fcn.00463b80
mov eax, dword [ebp + 0x78]
add esp, 8
call fcn.00462040
cmp ebx, esi
jne case.0x462817.1
cmp dword [esp + 0x2c], esi
je 0x462953
mov eax, 3
jmp 0x4634b6
mov dword [esp + 0x74], 0xffffffff
cmp dword [esp + 0x14], esi
je 0x46296b
mov eax, 8
jmp 0x4634b6
mov edx, dword [ebp + 8]
push edx
call fcn.0048eab0
add esp, 4
mov ecx, ebp
test eax, eax
je 0x462987
mov eax, 5
jmp 0x4634b8
mov eax, 4
jmp 0x4634b8
mov esi, dword [ebp + 8]
mov dword [esp + 0x18], 0
cmp dword [esi + 0x53c], 0
je 0x4629ad
mov eax, dword [esi + 0x34c]
jmp 0x4629c4
cmp dword [esi + 0x55c], 0
je 0x4629be
mov eax, dword [esi + 0x31c]
jmp 0x4629c4
mov eax, dword [esi + 0x304]
mov ecx, dword [esi + 0x364]
push ecx
push eax
push esi
mov dword [esp + 0x30], eax
call fcn.0048bb00
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
je 0x462a0c
mov edx, dword [esp + 0x24]
push edx
push 0x74c5ac
push ebp
mov dword [esi + 0x66c], eax
mov dword [esi + 0x678], 1
xor ebx, ebx
call fcn.00463b80
add esp, 0xc
cmp dword [esp + 0x18], ebx
jne 0x462a1f
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x18]
push eax
push ecx
call fcn.0048c230
add esp, 8
mov ebx, eax
mov edx, dword [esp + 0x6c]
push ebp
push edx
call fcn.00460e10
add esp, 8
cmp dword [esp + 0x18], 0
je 0x462a8b
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x14]
push eax
push ecx
call fcn.0048c270
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x462a54
mov dword [ebp + 8], 0
jmp 0x462a8b
cmp dword [esp + 0x14], 0
mov dword [esp + 0x74], 0xffffffff
je 0x462a6a
mov eax, 8
jmp 0x462a84
mov edx, dword [ebp + 8]
push edx
call fcn.0048eab0
add esp, 4
test eax, eax
mov eax, 5
jne 0x462a84
mov eax, 4
mov ecx, ebp
call fcn.00461a70
test ebx, ebx
je case.0x462817.1
mov dword [esp + 0x10], 1
jmp case.0x462817.1
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x14]
push eax
push ecx
call fcn.00487e70
mov ebx, eax
mov eax, dword [ebp + 8]
add esp, 8
cmp dword [eax + 0x54c], esi
je 0x462add
xor ebx, ebx
push ebx
xor ecx, ecx
mov esi, ebp
mov dword [esp + 0x78], 0xffffffff
call fcn.00462090
add esp, 4
lea eax, [ebx + 2]
jmp 0x4634b6
cmp ebx, esi
jne 0x462a93
cmp dword [eax + 0x358], 2
jne 0x462af6
cmp dword [eax + 0x534], esi
je case.0x462817.1
push eax
call fcn.0048ea90
add esp, 4
test eax, eax
je case.0x462817.1
mov dword [esp + 0x74], 0xffffffff
mov eax, 6
jmp 0x4634b6
mov eax, dword [ebp + 8]
lea edx, [esp + 0x30]
push edx
push esi
push eax
call fcn.0046a280
add esp, 0xc
mov ebx, eax
cmp dword [esp + 0x30], esi
je 0x462b7f
cmp ebx, esi
jne 0x462b87
mov eax, dword [ebp + 8]
cmp dword [eax + 0x358], 2
jne 0x462b4b
cmp dword [eax + 0x534], esi
je 0x462b58
push eax
call fcn.0048eab0
add esp, 4
test eax, eax
je 0x462b62
mov eax, 5
jmp 0x4634b6
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x548]
neg eax
sbb eax, eax
mov dword [esp + 0x74], 0xffffffff
add eax, 6
jmp 0x4634b6
cmp ebx, esi
je case.0x462817.1
push ebp
call fcn.0045bcb0
push 1
mov ecx, ebx
mov esi, ebp
call fcn.00462090
add esp, 8
mov dword [esp + 0x10], 1
jmp case.0x462817.1
mov esi, dword [ebp + 8]
lea ebx, [esp + 0x14]
call fcn.00460cc0
mov ebx, eax
test ebx, ebx
jne 0x462b87
mov ecx, ebp
cmp dword [esp + 0x14], eax
jne 0x462bca
lea eax, [ebx + 7]
jmp 0x4634b8
mov eax, 8
call fcn.00461a70
mov dword [esp + 0x74], 0xffffffff
jmp case.0x462817.1
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x14]
call fcn.00460c60
mov ebx, eax
cmp ebx, esi
jne 0x462b87
cmp dword [esp + 0x14], esi
je case.0x462817.1
mov eax, 8
mov ecx, ebp
call fcn.00461a70
mov dword [esp + 0x74], 0xffffffff
jmp case.0x462817.1
cmp dword [ebp + 0xc10], esi
je 0x462c46
mov edx, dword [ebp + 8]
push esi
push edx
call fcn.00469c30
add esp, 8
mov eax, 0xe
mov ecx, ebp
call fcn.00461a70
xor ebx, ebx
mov dword [esp + 0x74], 0xffffffff
jmp case.0x462817.1
lea ebx, [esp + 0x1c]
mov ecx, ebp
call fcn.00460bf0
mov ebx, eax
cmp ebx, esi
jne 0x462cec
cmp dword [esp + 0x1c], esi
jne 0x462cb5
cmp dword [ebp + 0x1258], esi
je 0x462ca0
mov eax, dword [ebp + 0x1280]
cmp eax, 7
je 0x462c79
cmp eax, 5
jne 0x462ca0
push 0
xor ecx, ecx
mov esi, ebp
call fcn.00462090
add esp, 4
mov eax, 0xe
mov ecx, ebp
call fcn.00461a70
mov dword [esp + 0x74], 0xffffffff
jmp case.0x462817.1
mov eax, 9
mov ecx, ebp
call fcn.00461a70
mov dword [esp + 0x74], esi
jmp case.0x462817.1
mov eax, dword [ebp + 8]
mov ecx, ebp
cmp dword [eax + 0x574], esi
je 0x462cd5
mov eax, 0xa
call fcn.00461a70
mov dword [esp + 0x74], esi
jmp case.0x462817.1
mov eax, 0xb
call fcn.00461a70
mov dword [esp + 0x74], 0xffffffff
jmp case.0x462817.1
cmp ebx, 0x37
jne 0x462db2
mov eax, dword [ebp + 8]
cmp dword [eax + 0x554], esi
je 0x462db2
lea ecx, [esp + 0x24]
push ecx
push eax
mov dword [esp + 0x2c], esi
call fcn.0048e720
add esp, 8
cmp eax, esi
je 0x462d24
mov ebx, eax
mov dword [esp + 0x10], 1
push ebp
call fcn.0045bcb0
push 0
mov ecx, ebx
mov esi, ebp
call fcn.00462090
mov ecx, dword [esp + 0x2c]
add esp, 8
test ecx, ecx
je 0x462d97
test eax, eax
je 0x462d5e
cmp eax, 0x37
je 0x462d5e
mov edx, dword [esp + 0x24]
push edx
mov ebx, eax
call dword [0x7fbab8]
add esp, 4
jmp case.0x462817.1
push 2
push ecx
push ebp
call fcn.0048e440
add esp, 0xc
test eax, eax
jne 0x462d49
mov eax, 2
mov ecx, ebp
call fcn.00461a70
mov edx, dword [esp + 0x24]
push edx
mov dword [esp + 0x78], 0xffffffff
xor ebx, ebx
call dword [0x7fbab8]
add esp, 4
jmp case.0x462817.1
mov edx, dword [esp + 0x24]
push edx
mov dword [esp + 0x14], 1
call dword [0x7fbab8]
add esp, 4
jmp case.0x462817.1
push ebp
call fcn.0045bcb0
add esp, 4
cmp dword [ebp + 8], esi
je 0x462dce
push 0
mov ecx, ebx
mov esi, ebp
call fcn.00462090
add esp, 4
mov dword [esp + 0x10], 1
jmp case.0x462817.1
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x1c]
call fcn.00460c90
mov ebx, eax
cmp ebx, esi
jne 0x462e1b
cmp dword [esp + 0x1c], esi
je case.0x462817.1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x574]
neg eax
sbb eax, eax
add eax, 0xb
mov ecx, ebp
call fcn.00461a70
mov dword [esp + 0x74], 0xffffffff
jmp case.0x462817.1
push ebp
call fcn.0045bcb0
push 0
jmp 0x462b8f
mov edi, dword [ebp + 8]
lea ebx, [esp + 0x34]
call fcn.00460c30
mov ebx, eax
test ebx, ebx
jne 0x462e79
mov eax, dword [esp + 0x34]
test eax, eax
je 0x462e68
xor ecx, ecx
cmp eax, 1
sete cl
lea ecx, [ecx + ecx + 9]
mov eax, ecx
mov ecx, ebp
call fcn.00461a70
mov edi, dword [esp + 0x70]
mov dword [esp + 0x74], 0xffffffff
jmp case.0x462817.1
mov edi, dword [esp + 0x70]
mov dword [esp + 0x74], 0
jmp case.0x462817.1
push ebp
call fcn.0045bcb0
push 0
mov ecx, ebx
mov esi, ebp
call fcn.00462090
mov edi, dword [esp + 0x78]
add esp, 8
mov dword [esp + 0x10], 1
jmp case.0x462817.1
mov edx, dword [ebp + 8]
cmp dword [edx + 0x5a0], esi
je 0x462eb2
mov eax, dword [esp + 0x6c]
call fcn.00462040
mov eax, dword [ebp + 8]
or esi, 0xffffffff
cmp dword [eax + 0x614], esi
jne 0x462eff
cmp dword [eax + 0x618], esi
jne 0x462eff
cmp dword [ebp + 0x1258], 0
je 0x462eea
mov eax, dword [eax + 0x5f0]
test dword [eax + 0x48], 0x1000
jne 0x462eea
mov dword [ebp + 0x1280], 7
mov eax, 0xe
mov ecx, ebp
call fcn.00461a70
mov dword [esp + 0x74], esi
jmp case.0x462817.1
mov eax, 0xc
mov ecx, ebp
call fcn.00461a70
mov dword [esp + 0x74], esi
jmp case.0x462817.1
mov ecx, dword [ebp + 8]
push ecx
call fcn.004737e0
add esp, 4
test eax, eax
je 0x462f2e
mov ebx, 0x2a
jmp case.0x462817.1
mov edx, dword [edi]
mov ecx, dword [edi + 4]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [edi + 8]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0xc]
mov dword [eax + 8], edx
push ebp
mov dword [eax + 0xc], ecx
call fcn.0048c5d0
mov ebx, eax
add esp, 0x14
cmp ebx, esi
jne case.0x462817.1
mov ecx, dword [ebp + 0x684]
cmp ecx, esi
mov edx, dword [ebp + 0x680]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
jl 0x462fed
jg 0x462f7a
cmp edx, esi
jbe 0x462fed
mov esi, dword [edi]
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov esi, dword [edi + 4]
mov dword [eax + 4], esi
mov esi, dword [edi + 8]
mov dword [eax + 8], esi
mov esi, dword [edi + 0xc]
mov dword [eax + 0xc], esi
mov esi, dword [ebp + 0xd50]
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov esi, dword [ebp + 0xd54]
mov dword [eax + 4], esi
mov esi, dword [ebp + 0xd58]
push ecx
mov ecx, dword [ebp + 0xcb4]
push edx
mov edx, dword [ebp + 0xd64]
mov dword [eax + 8], esi
mov esi, dword [ebp + 0xd5c]
push edx
mov edx, dword [ebp + 0xcb0]
mov dword [eax + 0xc], esi
mov eax, dword [ebp + 0xd60]
push eax
push ecx
push edx
call fcn.00472cb0
add esp, 0x38
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
xor esi, esi
mov ecx, dword [ebp + 0x68c]
mov esi, dword [ebp + 0x688]
xor eax, eax
xor edx, edx
test ecx, ecx
jl 0x463070
jg 0x463007
test esi, esi
jbe 0x463070
mov edx, dword [edi]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov edx, dword [edi + 8]
mov dword [eax + 8], edx
mov edx, dword [edi + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ebp + 0xd68]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp + 0xd6c]
mov dword [eax + 4], edx
mov edx, dword [ebp + 0xd70]
mov dword [eax + 8], edx
mov edx, dword [ebp + 0xd74]
push ecx
mov ecx, dword [ebp + 0xd78]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 0xd7c]
mov edx, dword [ebp + 0xcac]
push esi
push eax
mov eax, dword [ebp + 0xca8]
push ecx
push edx
push eax
call fcn.00472cb0
add esp, 0x38
mov ecx, dword [esp + 0x38]
mov esi, ecx
or esi, dword [esp + 0x3c]
jne 0x4630b5
mov esi, eax
or esi, edx
jne 0x4630b5
lea eax, [esi + 0xc]
mov ecx, ebp
call fcn.00461a70
mov ecx, dword [edi]
mov edx, dword [edi + 4]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edi + 8]
mov dword [eax + 4], edx
mov edx, dword [edi + 0xc]
mov dword [eax + 8], ecx
push ebp
mov dword [eax + 0xc], edx
call fcn.00472dd0
add esp, 0x14
jmp case.0x462817.1
mov esi, dword [esp + 0x3c]
cmp esi, edx
jl 0x4630d5
jg 0x4630c3
cmp ecx, eax
jb 0x4630d5
push 0xb
push esi
push ecx
push ebp
call fcn.00461770
add esp, 0x10
jmp case.0x462817.1
push 0xb
push edx
push eax
push ebp
call fcn.00461770
add esp, 0x10
jmp case.0x462817.1
mov ecx, dword [ebp + 0x684]
cmp ecx, esi
mov edx, dword [ebp + 0x680]
mov dword [esp + 0x18], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
jl 0x463182
jg 0x463111
cmp edx, esi
jbe 0x463182
mov esi, dword [edi]
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov esi, dword [edi + 4]
mov dword [eax + 4], esi
mov esi, dword [edi + 8]
mov dword [eax + 8], esi
mov esi, dword [edi + 0xc]
mov dword [eax + 0xc], esi
mov esi, dword [ebp + 0xd50]
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov esi, dword [ebp + 0xd54]
mov dword [eax + 4], esi
mov esi, dword [ebp + 0xd58]
mov dword [eax + 8], esi
mov esi, dword [ebp + 0xd5c]
push ecx
mov ecx, dword [ebp + 0xd60]
push edx
mov edx, dword [ebp + 0xcb4]
mov dword [eax + 0xc], esi
mov eax, dword [ebp + 0xd64]
push eax
mov eax, dword [ebp + 0xcb0]
push ecx
push edx
push eax
call fcn.00472cb0
add esp, 0x38
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov ecx, dword [ebp + 0x68c]
mov edx, dword [ebp + 0x688]
xor esi, esi
cmp ecx, esi
mov dword [esp + 0x40], esi
jl 0x46320d
jg 0x46319e
cmp edx, esi
jbe 0x46320d
mov esi, dword [edi]
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov esi, dword [edi + 4]
mov dword [eax + 4], esi
mov esi, dword [edi + 8]
mov dword [eax + 8], esi
mov esi, dword [edi + 0xc]
mov dword [eax + 0xc], esi
mov esi, dword [ebp + 0xd68]
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov esi, dword [ebp + 0xd6c]
push ecx
mov ecx, dword [ebp + 0xd7c]
mov dword [eax + 4], esi
mov esi, dword [ebp + 0xd70]
push edx
mov edx, dword [ebp + 0xd78]
mov dword [eax + 8], esi
mov esi, dword [ebp + 0xd74]
push ecx
mov ecx, dword [ebp + 0xca8]
mov dword [eax + 0xc], esi
mov eax, dword [ebp + 0xcac]
push edx
push eax
push ecx
call fcn.00472cb0
add esp, 0x38
mov dword [esp + 0x40], eax
mov esi, edx
mov edx, dword [esp + 0x38]
or edx, dword [esp + 0x3c]
jne 0x4633f1
mov eax, dword [esp + 0x40]
or eax, esi
jne 0x4633f1
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x24]
push edx
push ebp
push eax
call fcn.0048dd70
add esp, 0x10
cmp dword [esp + 0x20], 0
mov ebx, eax
jne 0x463291
cmp ebx, 0x38
je 0x463291
cmp ebx, 0x5c
je 0x463259
mov esi, dword [esp + 0x24]
test ebx, ebx
je 0x4632c7
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x5f0]
test byte [ecx + 0x48], 2
jne 0x463278
cmp ebx, 0x5c
je 0x463278
push 2
push eax
call fcn.00469c30
add esp, 8
push ebp
call fcn.0045bcb0
push 1
mov ecx, ebx
mov esi, ebp
call fcn.00462090
add esp, 8
jmp case.0x462817.1
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x18]
push ecx
push edx
call fcn.0048e720
add esp, 8
test eax, eax
jne 0x4632bf
cmp dword [esp + 0x18], eax
setne al
mov esi, eax
test esi, esi
je 0x463255
xor ebx, ebx
mov dword [esp + 0x20], 1
jmp 0x4632d2
test ebx, ebx
jne 0x463259
mov ebx, eax
jmp 0x463251
cmp dword [esp + 0x20], 0
je 0x4633ca
push ebp
call fcn.0045bcb0
add esp, 4
cmp dword [ebp + 0x12c], 0
jne 0x463359
test esi, esi
jne 0x463380
cmp dword [ebp + 0x128], esi
je 0x462c87
mov edx, dword [esp + 0x18]
push edx
call dword [0x7fbab8]
mov eax, dword [ebp + 0x128]
push 1
push eax
push ebp
mov dword [esp + 0x28], eax
mov dword [ebp + 0x128], esi
call fcn.0048e440
mov ebx, eax
mov eax, dword [esp + 0x28]
push eax
call dword [0x7fbab8]
add esp, 0x14
test ebx, ebx
je 0x462c87
push 1
mov ecx, ebx
mov esi, ebp
mov dword [esp + 0x14], 1
call fcn.00462090
mov ebx, eax
add esp, 4
test ebx, ebx
jne case.0x462817.1
jmp 0x462c87
test esi, esi
jne 0x463380
mov ecx, dword [esp + 0x18]
push ecx
call dword [0x7fbab8]
mov edx, dword [ebp + 0x12c]
add esp, 4
mov dword [esp + 0x18], edx
mov dword [ebp + 0x12c], esi
lea ebx, [esi + 3]
jmp 0x463385
mov ebx, 2
push 0
xor ecx, ecx
mov esi, ebp
call fcn.00462090
mov eax, dword [esp + 0x1c]
push ebx
push eax
push ebp
call fcn.0048e440
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x4633b7
lea eax, [ebx + 2]
mov ecx, ebp
call fcn.00461a70
mov dword [esp + 0x74], 0xffffffff
mov ecx, dword [esp + 0x18]
push ecx
call dword [0x7fbab8]
add esp, 4
jmp case.0x462817.1
cmp dword [esp + 0x28], 0
je case.0x462817.1
push 8
push 0
push 0
push ebp
call fcn.00461770
add esp, 0x10
mov dword [esp + 0x74], 0
jmp case.0x462817.1
mov edx, dword [edi]
mov ecx, dword [edi + 4]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [edi + 8]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0xc]
mov dword [eax + 8], edx
push ebp
mov dword [eax + 0xc], ecx
call fcn.00472dd0
add esp, 0x14
mov eax, 0xd
mov ecx, ebp
call fcn.00461a70
cmp dword [esp + 0x3c], esi
jl 0x46344a
jg 0x463433
mov edx, dword [esp + 0x40]
cmp dword [esp + 0x38], edx
jb 0x46344a
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push 0xb
push eax
push ecx
push ebp
call fcn.00461770
add esp, 0x10
jmp case.0x462817.1
mov edx, dword [esp + 0x40]
push 0xb
push esi
push edx
push ebp
call fcn.00461770
add esp, 0x10
jmp case.0x462817.1
mov eax, dword [ebp + 8]
mov dword [esp + 0x74], 0xffffffff
cmp eax, esi
je 0x46349c
cmp dword [eax + 0x5a0], esi
je 0x46347d
mov eax, dword [esp + 0x6c]
call fcn.00462040
push 0
mov ecx, ebx
mov esi, ebp
call fcn.00462090
add esp, 4
test ebx, ebx
jne 0x463491
mov ebx, eax
push ebp
call fcn.004609a0
add esp, 4
xor esi, esi
cmp dword [ebp + 0x1258], esi
je 0x4634b1
cmp dword [ebp + 0x1280], 7
je 0x4634b1
xor eax, eax
jmp 0x4634b6
mov eax, 0xf
mov ecx, ebp
call fcn.00461a70
cmp dword [ebp + 0x24], 0xf
jge 0x463574
test ebx, ebx
je 0x463535
mov eax, dword [esp + 0x6c]
call fcn.00462040
mov esi, dword [ebp + 8]
test esi, esi
je 0x463515
cmp dword [esp + 0x10], 0
je 0x463524
push ebp
call fcn.004609a0
push 1
push esi
push ebp
call fcn.0046ab90
xor eax, eax
cmp ebx, 0x1c
sete al
push eax
push esi
push ebp
call fcn.0045f3b0
add esp, 0x1c
mov eax, 0xf
mov ecx, ebp
call fcn.00461a70
or esi, 0xffffffff
jmp 0x463578
cmp dword [ebp + 0x24], 2
jne 0x463524
push ebp
call fcn.0045bcb0
add esp, 4
mov eax, 0xf
mov ecx, ebp
call fcn.00461a70
or esi, 0xffffffff
jmp 0x463578
mov eax, dword [ebp + 8]
test eax, eax
je 0x463574
push eax
call fcn.004737e0
add esp, 4
test eax, eax
je 0x463574
mov ecx, dword [ebp + 8]
push 2
push ecx
mov ebx, 0x2a
call fcn.00469c30
xor eax, eax
add esp, 8
cmp dword [ebp + 0x24], 0xe
mov ecx, ebp
setge al
add eax, 0xe
call fcn.00461a70
or esi, 0xffffffff
jmp 0x463578
mov esi, dword [esp + 0x74]
cmp dword [ebp + 0x24], 0xf
jne 0x4635b8
mov eax, dword [ebp + 0xb68]
test eax, eax
je 0x463591
push ebx
push ebp
call eax
add esp, 8
jmp 0x4635ac
mov ecx, dword [esp + 0x6c]
lea eax, [ebp + 0x2c]
mov dword [eax + 0xc], 1
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebx
call fcn.004607d0
mov esi, eax
mov eax, 0x10
mov ecx, ebp
call fcn.00461a70
cmp esi, 0xffffffff
je 0x4625a5
mov ecx, dword [esp + 0x6c]
push 0
call fcn.00460ba0
add esp, 4
test eax, eax
jne 0x4625a5
mov dword [ebp + 0x28], ebx
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
mov dword [ebp + 0x28], ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x58
ret