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

Disassembly:
sub esp, 0x108
push ebx
push ebp
mov ebp, dword [esp + 0x118]
push esi
mov esi, dword [esp + 0x118]
push edi
mov edi, dword [esi + 0x72b0]
lea ecx, [edx + eax]
mov eax, dword [esp + 0x124]
mov dword [esp + 0x80], edi
mov edi, dword [esi + 0x72b4]
mov dword [esp + 0x20], ecx
lea ecx, [eax + ebp]
mov eax, dword [esi + 0x7380]
mov dword [esp + 0x94], edi
mov edi, dword [esi + 0x72b8]
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0x7370]
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x128]
add eax, ecx
mov ebx, ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x88], eax
test edi, edi
je 0x465150
cmp edi, 4
mov dword [esp + 0x90], edi
jl 0x464209
mov dword [esp + 0x90], 4
mov edi, dword [esp + 0x20]
mov dword [esi + 0x7304], 1
mov eax, dword [esi + 0x682c]
mov ecx, dword [esi + 0x6830]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x6834]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x80]
sub ebp, eax
mov dword [esp + 0x64], ecx
sub edi, edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], ebp
call fcn.00462b50
cmp eax, 0xffffff88
jbe 0x464271
mov eax, 0xffffffec
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret
mov eax, dword [esp + 0x2c]
mov edi, dword [esi]
mov edx, dword [edi + 4]
lea ebx, [edx + eax]
mov eax, dword [esp + 0x28]
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], ebx
and eax, dword [edx*4 + 0x752110]
mov dword [esp + 0x3c], eax
call fcn.00462c90
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
add edi, 8
mov dword [esp + 0x40], edi
mov edi, dword [esi + 8]
mov edx, dword [edi + 4]
lea ebx, [edx + ecx]
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], ebx
and eax, dword [edx*4 + 0x752110]
mov dword [esp + 0x44], eax
call fcn.00462c90
mov eax, dword [esp + 0x2c]
mov esi, dword [esi + 4]
mov edx, dword [esi + 4]
add edi, 8
mov dword [esp + 0x48], edi
lea edi, [edx + eax]
mov eax, dword [esp + 0x28]
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], edi
and eax, dword [edx*4 + 0x752110]
mov dword [esp + 0x4c], eax
call fcn.00462c90
add esi, 8
mov dword [esp + 0x50], esi
mov dword [esp + 0x1c], 0
call fcn.00462c90
cmp eax, 2
jg 0x46468d
lea ebp, [esp + 0xd8]
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x90]
jge 0x46469e
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov ecx, dword [eax + edx*8]
mov ebx, dword [eax + edx*8 + 4]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov edx, dword [eax + esi*8]
mov eax, dword [eax + esi*8 + 4]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov dword [esp + 0xc4], eax
mov eax, dword [esi + edi*8]
mov edi, dword [esi + edi*8 + 4]
mov dword [esp + 0x98], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0xc0], edx
shr ecx, 0x10
shr edx, 0x10
shr eax, 0x10
mov dword [esp + 0x78], ebx
mov byte [esp + 0x13], cl
mov byte [esp + 0x7f], dl
cmp al, 1
jbe 0x464471
cmp dword [esp + 0x12c], 0
je 0x464427
cmp al, 0x19
jb 0x464427
mov ebx, dword [esp + 0x2c]
mov ecx, 0x20
movzx eax, al
sub ecx, ebx
cmp eax, ecx
jae 0x4643ce
mov ecx, eax
mov esi, eax
sub esi, ecx
sub eax, esi
mov edx, eax
mov eax, dword [esp + 0x28]
mov ecx, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, esi
add ebx, edx
mov dword [esp + 0x2c], ebx
shl eax, cl
lea ecx, [esp + 0x28]
add eax, edi
mov ebx, eax
call fcn.00462c90
test esi, esi
je 0x464453
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
add edx, esi
mov dword [esp + 0x2c], edx
add ebx, eax
jmp 0x464453
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov ecx, edx
and ecx, 0x1f
shl ebx, cl
movzx eax, al
mov ecx, eax
neg ecx
and ecx, 0x1f
shr ebx, cl
add edx, eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], edx
add ebx, edi
call fcn.00462c90
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x58], edx
mov dl, byte [esp + 0x7f]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x54], ebx
jmp 0x4644ed
mov esi, dword [esp + 0x28]
xor ecx, ecx
test ebx, ebx
sete cl
mov dword [esp + 0x20], ecx
test al, al
jne 0x4644a0
test ecx, ecx
jne 0x46448e
mov ebx, dword [esp + 0x54]
jmp 0x4644ed
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ebx
jmp 0x4644ed
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
and ecx, 0x1f
mov eax, esi
shl eax, cl
mov ecx, dword [esp + 0x20]
inc ebx
mov dword [esp + 0x2c], ebx
shr eax, 0x1f
add eax, ecx
mov ecx, dword [esp + 0x54]
add eax, edi
lea edi, [ecx - 1]
cmp eax, 3
je 0x4644cd
mov edi, dword [esp + eax*4 + 0x54]
xor ebx, ebx
test edi, edi
sete bl
add edi, ebx
cmp eax, 1
je 0x4644e3
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ecx
mov ebx, edi
mov dword [esp + 0x54], edi
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xa4], ecx
test dl, dl
jbe 0x464530
mov ecx, dword [esp + 0x2c]
and ecx, 0x1f
movzx edi, dl
mov eax, esi
shl eax, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, edi
add dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xc4]
add eax, ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0xa4], eax
movzx edi, byte [esp + 0x13]
movzx edx, dl
add edx, edi
cmp edx, 0x14
jl 0x46454c
lea ecx, [esp + 0x28]
call fcn.00462c90
mov esi, dword [esp + 0x28]
cmp byte [esp + 0x13], 0
mov edx, dword [esp + 0x78]
mov dword [esp + 0xa0], edx
jbe 0x464581
mov eax, dword [esp + 0x2c]
mov ecx, eax
and ecx, 0x1f
shl esi, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr esi, cl
add eax, edi
mov dword [esp + 0x2c], eax
add esi, edx
mov dword [esp + 0xa0], esi
lea ecx, [esp + 0x28]
call fcn.00462c90
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xa0]
add ecx, eax
mov eax, dword [esp + 0x64]
cmp ebx, ecx
ja 0x4645a3
mov eax, dword [esp + 0x60]
movzx esi, byte [esp + 0x77]
mov edx, dword [esp + 0xa4]
sub eax, ebx
add eax, ecx
add ecx, edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x2c]
lea edi, [esi + eax]
mov eax, dword [esp + 0x28]
mov ecx, edi
neg ecx
and ecx, 0x1f
mov edx, eax
shr edx, cl
movzx ecx, word [esp + 0x74]
and edx, dword [esi*4 + 0x752110]
add ecx, edx
movzx edx, byte [esp + 0xc3]
lea esi, [edx + edi]
mov dword [esp + 0x3c], ecx
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], esi
and eax, dword [edx*4 + 0x752110]
movzx edx, word [esp + 0xc0]
add edx, eax
mov dword [esp + 0x4c], edx
call fcn.00462c90
movzx edx, byte [esp + 0x9b]
mov eax, dword [esp + 0x2c]
inc dword [esp + 0x1c]
lea esi, [edx + eax]
mov eax, dword [esp + 0x28]
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
movzx ecx, word [esp + 0x98]
and eax, dword [edx*4 + 0x752110]
mov edx, dword [esp + 0xa0]
add ecx, eax
mov eax, dword [esp + 0xa4]
mov dword [ebp], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xac]
mov dword [ebp + 4], eax
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], esi
add ebp, 0x10
call fcn.00462c90
cmp eax, 2
jle 0x464338
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x90]
jl 0x464261
lea ecx, [esp + 0x28]
call fcn.00462c90
cmp eax, 2
jg 0x464d7c
mov eax, dword [esp + 0x128]
cmp dword [esp + 0x1c], eax
jge 0x464d8d
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov esi, dword [eax + ecx*8]
mov ebp, dword [eax + ecx*8 + 4]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [eax + ecx*8]
mov ecx, dword [eax + ecx*8 + 4]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x44]
mov edi, dword [eax + ecx*8]
mov edx, dword [eax + ecx*8 + 4]
mov eax, esi
shr eax, 0x10
mov byte [esp + 0x13], al
mov eax, edi
mov dword [esp + 0x98], ebx
shr eax, 0x10
shr ebx, 0x10
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xa0], edi
cmp al, 1
jbe 0x464804
cmp dword [esp + 0x12c], 0
je 0x4647bb
cmp al, 0x19
jb 0x4647bb
mov ebp, dword [esp + 0x2c]
mov ecx, 0x20
movzx eax, al
sub ecx, ebp
cmp eax, ecx
jae 0x464754
mov ecx, eax
mov esi, eax
sub esi, ecx
sub eax, esi
mov edi, eax
mov eax, dword [esp + 0x28]
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, esi
add ebp, edi
mov dword [esp + 0x2c], ebp
shl eax, cl
lea ecx, [esp + 0x28]
add eax, edx
mov edi, eax
mov dword [esp + 0x84], edi
call fcn.00462c90
test esi, esi
je 0x4647ef
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
add edx, esi
mov dword [esp + 0x2c], edx
add edi, eax
mov dword [esp + 0x84], edi
jmp 0x4647ef
mov edi, dword [esp + 0x2c]
movzx esi, al
mov eax, dword [esp + 0x28]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
add edi, esi
mov dword [esp + 0x2c], edi
lea ecx, [esp + 0x28]
lea edi, [eax + edx]
mov dword [esp + 0x84], edi
call fcn.00462c90
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
jmp 0x46487c
xor ecx, ecx
test ebp, ebp
sete cl
mov edi, ecx
test al, al
jne 0x464830
test edi, edi
jne 0x464822
mov edi, dword [esp + 0x54]
mov dword [esp + 0x84], edi
jmp 0x464880
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x58], edx
jmp 0x464875
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, esi
and ecx, 0x1f
shl eax, cl
inc esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x54]
shr eax, 0x1f
add eax, edi
add eax, edx
lea edi, [esi - 1]
cmp eax, 3
je 0x46485b
mov edi, dword [esp + eax*4 + 0x54]
xor ecx, ecx
test edi, edi
sete cl
add edi, ecx
cmp eax, 1
je 0x464871
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x84], edi
mov dword [esp + 0x54], edi
mov esi, dword [esp + 0x9c]
mov dword [esp + 0xb4], esi
test bl, bl
jbe 0x4648bc
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, ebp
and ecx, 0x1f
movzx edx, bl
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
add ebp, edx
mov dword [esp + 0x2c], ebp
add esi, eax
mov dword [esp + 0xb4], esi
movzx ebp, byte [esp + 0x13]
movzx eax, bl
add eax, ebp
cmp eax, 0x14
jl 0x4648d4
lea ecx, [esp + 0x28]
call fcn.00462c90
cmp byte [esp + 0x13], 0
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0xb0], ebx
jbe 0x464910
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, ebp
neg ecx
and ecx, 0x1f
shr eax, cl
add edx, ebp
mov dword [esp + 0x2c], edx
add ebx, eax
mov dword [esp + 0xb0], ebx
lea ecx, [esp + 0x28]
call fcn.00462c90
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add ecx, ebx
cmp edi, ecx
ja 0x46492b
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x2c]
add esi, ecx
mov dword [esp + 0x68], esi
movzx esi, byte [esp + 0xd3]
sub eax, edi
add eax, ecx
lea edi, [esi + edx]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x28]
mov ecx, edi
neg ecx
and ecx, 0x1f
mov edx, eax
shr edx, cl
movzx ecx, word [esp + 0xd0]
and edx, dword [esi*4 + 0x752110]
add ecx, edx
movzx edx, byte [esp + 0x9b]
lea esi, [edx + edi]
mov dword [esp + 0x3c], ecx
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], esi
and eax, dword [edx*4 + 0x752110]
movzx edx, word [esp + 0x98]
add edx, eax
mov dword [esp + 0x4c], edx
call fcn.00462c90
movzx edx, byte [esp + 0xa3]
mov eax, dword [esp + 0x2c]
lea esi, [edx + eax]
mov eax, dword [esp + 0x28]
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
movzx ecx, word [esp + 0xa0]
and eax, dword [edx*4 + 0x752110]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x1c]
add ecx, eax
and esi, 3
shl esi, 4
mov eax, dword [esp + esi + 0xe4]
mov ebx, dword [esp + esi + 0xdc]
mov edx, dword [esp + esi + 0xe0]
lea esi, [esp + esi + 0xd8]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi]
lea edi, [ecx + eax]
lea eax, [ebx + ecx]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x18]
lea ebp, [ecx + eax]
mov eax, edi
sub eax, edx
mov dword [esp + 0xc0], ebp
cmp ebp, dword [esp + 0x88]
ja 0x464ce3
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x74]
add edx, ebp
mov ebp, dword [esp + 0x24]
add ebp, 0xffffffe0
cmp edx, ebp
ja 0x464ce3
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x74]
sub edx, dword [esp + 0x14]
add ebp, 0x20
cmp edx, ebp
jb 0x464ce3
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
mov dword [ebp], edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 4]
mov dword [ebp + 4], edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 8]
mov dword [ebp + 8], edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0xc]
mov dword [ebp + 0xc], edx
cmp ecx, 0x10
jbe 0x464b17
mov edx, dword [esp + 0x18]
add ecx, 0xfffffff0
mov dword [esp + 0x20], ecx
lea ecx, [ebp + 0x10]
mov ebp, dword [esp + 0x20]
add ebp, ecx
add edx, 0x10
cmp dword [esp + 0x20], 0x10
mov dword [esp + 0x18], ebp
mov ebp, dword [edx]
mov dword [ecx], ebp
mov ebp, dword [edx + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [edx + 8]
mov dword [ecx + 8], ebp
mov ebp, dword [edx + 0xc]
mov dword [ecx + 0xc], ebp
jle 0x464b17
add ecx, 0x10
add edx, 0x10
mov ebp, dword [edx]
mov dword [ecx], ebp
mov ebp, dword [edx + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [edx + 8]
mov dword [ecx + 8], ebp
mov ebp, dword [edx + 0xc]
mov dword [ecx + 0xc], ebp
mov ebp, dword [edx + 0x10]
add edx, 0x10
add ecx, 0x10
mov dword [ecx], ebp
mov ebp, dword [edx + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [edx + 8]
mov dword [ecx + 8], ebp
mov ebp, dword [edx + 0xc]
mov dword [ecx + 0xc], ebp
add ecx, 0x10
add edx, 0x10
cmp ecx, dword [esp + 0x18]
jb 0x464ad8
mov ecx, dword [esp + 0xc0]
mov edx, edi
sub edx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 8]
cmp ecx, edx
jbe 0x464b8b
mov edx, edi
sub edx, dword [esp + 0x94]
cmp ecx, edx
ja 0x464261
mov ebp, dword [esp + 0x8c]
mov ecx, ebp
sub ecx, dword [esp + 0x80]
add eax, ecx
lea edx, [eax + ebx]
cmp edx, ebp
ja 0x464b73
push ebx
push eax
push edi
call fcn.00630570
mov eax, dword [esp + 0x80]
add esp, 0xc
jmp 0x464d32
sub ebp, eax
push ebp
push eax
push edi
call fcn.00630570
mov eax, dword [esp + 0x8c]
add esp, 0xc
add edi, ebp
sub ebx, ebp
mov ebp, dword [esi + 8]
cmp ebp, 0x10
jb 0x464bfd
cmp ebx, 0x10
mov ecx, dword [eax]
mov dword [edi], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edi + 8], ecx
mov ecx, dword [eax + 0xc]
lea edx, [ebx + edi]
mov dword [edi + 0xc], ecx
jle 0x464bf4
lea ecx, [edi + 0x10]
add eax, 0x10
mov edi, dword [eax]
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov edi, dword [eax + 8]
mov dword [ecx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [ecx + 0xc], edi
mov edi, dword [eax + 0x10]
add eax, 0x10
add ecx, 0x10
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov edi, dword [eax + 8]
mov dword [ecx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [ecx + 0xc], edi
add ecx, 0x10
add eax, 0x10
cmp ecx, edx
jb 0x464bb7
mov eax, dword [esp + 0x74]
jmp 0x464d32
cmp ebp, 8
jae 0x464c30
movzx edx, byte [eax]
mov ecx, dword [ebp*4 + 0x752ba8]
mov byte [edi], dl
movzx edx, byte [eax + 1]
mov byte [edi + 1], dl
movzx edx, byte [eax + 2]
mov byte [edi + 2], dl
movzx edx, byte [eax + 3]
mov byte [edi + 3], dl
add eax, dword [ebp*4 + 0x752b88]
mov edx, dword [eax]
sub eax, ecx
jmp 0x464c37
mov ecx, dword [eax]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
cmp ebx, 8
jbe 0x464cdd
lea ecx, [eax + 8]
lea eax, [edi + 8]
mov edi, eax
add ebx, 0xfffffff8
sub edi, ecx
cmp edi, 0x10
lea edx, [eax + ebx]
jge 0x464c7c
sub ecx, eax
lea ebx, [ebx]
mov edi, dword [eax + ecx]
mov dword [eax], edi
mov edi, dword [eax + ecx + 4]
mov dword [eax + 4], edi
add eax, 8
cmp eax, edx
jb 0x464c60
mov eax, dword [esp + 0x74]
jmp 0x464d32
cmp ebx, 0x10
mov edi, dword [ecx]
mov dword [eax], edi
mov edi, dword [ecx + 4]
mov dword [eax + 4], edi
mov edi, dword [ecx + 8]
mov dword [eax + 8], edi
mov edi, dword [ecx + 0xc]
mov dword [eax + 0xc], edi
jle 0x464cdd
add eax, 0x10
add ecx, 0x10
lea ecx, [ecx]
mov edi, dword [ecx]
mov dword [eax], edi
mov edi, dword [ecx + 4]
mov dword [eax + 4], edi
mov edi, dword [ecx + 8]
mov dword [eax + 8], edi
mov edi, dword [ecx + 0xc]
mov dword [eax + 0xc], edi
mov edi, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], edi
mov edi, dword [ecx + 4]
mov dword [eax + 4], edi
mov edi, dword [ecx + 8]
mov dword [eax + 8], edi
mov edi, dword [ecx + 0xc]
mov dword [eax + 0xc], edi
add eax, 0x10
add ecx, 0x10
cmp eax, edx
jb 0x464ca0
mov eax, dword [esp + 0x74]
jmp 0x464d32
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x8c]
push ecx
push edx
mov edx, dword [esi]
push eax
lea ecx, [esp + 0x28]
push ecx
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esi + 8]
mov ecx, ebx
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
call fcn.00463860
add esp, 0x24
cmp eax, 0xffffff88
ja 0x465183
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
add dword [esp + 0x14], eax
inc dword [esp + 0x1c]
mov dword [esi], edx
mov edx, dword [esp + 0x84]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
lea ecx, [esp + 0x28]
call fcn.00462c90
cmp eax, 2
jle 0x4646b0
mov edx, dword [esp + 0x128]
cmp dword [esp + 0x1c], edx
jl 0x464261
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x128]
mov dword [esp + 0x1c], eax
jge 0x465115
lea esp, [esp]
and eax, 3
shl eax, 4
mov edx, dword [esp + eax + 0xe4]
mov ecx, dword [esp + eax + 0xd8]
mov ebp, dword [esp + eax + 0xdc]
mov edi, dword [esp + eax + 0xe0]
lea eax, [esp + eax + 0xd8]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x14]
lea esi, [ecx + edx]
lea edx, [ecx + ebp]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x18]
lea ebx, [ecx + edx]
mov edx, esi
sub edx, edi
mov dword [esp + 0xb8], edi
mov dword [esp + 0x20], ebx
cmp ebx, dword [esp + 0x88]
ja 0x4650a3
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x74]
add edi, ebx
mov ebx, dword [esp + 0x24]
add ebx, 0xffffffe0
cmp edi, ebx
ja 0x4650a3
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x74]
sub edi, dword [esp + 0x14]
add ebx, 0x20
cmp edi, ebx
jb 0x4650a3
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
mov ebx, dword [esp + 0x14]
mov dword [ebx], edi
mov edi, dword [eax + 4]
mov dword [ebx + 4], edi
mov edi, dword [eax + 8]
mov dword [ebx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [ebx + 0xc], edi
cmp ecx, 0x10
jbe 0x464ee0
lea edi, [ecx - 0x10]
cmp edi, 0x10
lea ecx, [eax + 0x10]
lea eax, [ebx + 0x10]
lea ebx, [eax + edi]
mov dword [esp + 0xc0], ebx
mov ebx, dword [ecx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
jle 0x464ee0
mov edi, dword [esp + 0xc0]
add eax, 0x10
add ecx, 0x10
mov ebx, dword [ecx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
mov ebx, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
add eax, 0x10
add ecx, 0x10
cmp eax, edi
jb 0x464ea3
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x18], ecx
mov ecx, esi
sub ecx, ebx
mov eax, esi
cmp edi, ecx
jbe 0x464f55
sub eax, dword [esp + 0x94]
cmp edi, eax
ja 0x464261
mov edi, dword [esp + 0x8c]
mov ecx, edi
sub ecx, ebx
add edx, ecx
lea eax, [edx + ebp]
cmp eax, edi
ja 0x464f3a
push ebp
push edx
push esi
call fcn.00630570
mov eax, dword [esp + 0x80]
add esp, 0xc
jmp 0x4650f2
sub edi, edx
push edi
push edx
push esi
call fcn.00630570
add esp, 0xc
lea eax, [edi + esi]
sub ebp, edi
mov edi, dword [esp + 0xb8]
mov edx, ebx
cmp edi, 0x10
jb 0x464fc6
cmp ebp, 0x10
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0xc]
lea esi, [eax + ebp]
mov dword [eax + 0xc], ecx
jle 0x464fbd
add eax, 0x10
lea ecx, [edx + 0x10]
mov edi, edi
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
add eax, 0x10
add ecx, 0x10
cmp eax, esi
jb 0x464f80
mov eax, dword [esp + 0x74]
jmp 0x4650f2
cmp edi, 8
jae 0x464ff9
movzx ecx, byte [edx]
mov esi, dword [edi*4 + 0x752ba8]
mov byte [eax], cl
movzx ecx, byte [edx + 1]
mov byte [eax + 1], cl
movzx ecx, byte [edx + 2]
mov byte [eax + 2], cl
movzx ecx, byte [edx + 3]
mov byte [eax + 3], cl
add edx, dword [edi*4 + 0x752b88]
mov ecx, dword [edx]
sub edx, esi
jmp 0x465000
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
cmp ebp, 8
jbe 0x46509d
add eax, 8
lea ecx, [edx + 8]
mov esi, eax
add ebp, 0xfffffff8
sub esi, ecx
cmp esi, 0x10
lea edx, [eax + ebp]
jge 0x46503f
sub ecx, eax
mov esi, dword [eax + ecx]
mov dword [eax], esi
mov esi, dword [eax + ecx + 4]
mov dword [eax + 4], esi
add eax, 8
cmp eax, edx
jb 0x465023
mov eax, dword [esp + 0x74]
jmp 0x4650f2
cmp ebp, 0x10
mov esi, dword [ecx]
mov dword [eax], esi
mov esi, dword [ecx + 4]
mov dword [eax + 4], esi
mov esi, dword [ecx + 8]
mov dword [eax + 8], esi
mov esi, dword [ecx + 0xc]
mov dword [eax + 0xc], esi
jle 0x46509d
add eax, 0x10
add ecx, 0x10
mov esi, dword [ecx]
mov dword [eax], esi
mov esi, dword [ecx + 4]
mov dword [eax + 4], esi
mov esi, dword [ecx + 8]
mov dword [eax + 8], esi
mov esi, dword [ecx + 0xc]
mov dword [eax + 0xc], esi
mov esi, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], esi
mov esi, dword [ecx + 4]
mov dword [eax + 4], esi
mov esi, dword [ecx + 8]
mov dword [eax + 8], esi
mov esi, dword [ecx + 0xc]
mov dword [eax + 0xc], esi
add eax, 0x10
add ecx, 0x10
cmp eax, edx
jb 0x465060
mov eax, dword [esp + 0x74]
jmp 0x4650f2
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x90]
push edx
push ecx
lea edx, [esp + 0x28]
push edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, ebp
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
call fcn.00463860
add esp, 0x24
cmp eax, 0xffffff88
ja 0x465183
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [esp + 0x128]
mov dword [esp + 0x1c], eax
jl 0x464db0
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x120]
mov dword [eax + 0x682c], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0x6834], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x6830], edx
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x24]
sub eax, ecx
mov esi, eax
sub edx, ebx
cmp esi, edx
jbe 0x46516e
mov eax, 0xffffffba
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret
test ebx, ebx
je 0x46517f
push esi
push ecx
push ebx
call fcn.00630200
add esp, 0xc
add ebx, esi
sub ebx, ebp
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret