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

Disassembly:
sub esp, 0x70
push ebx
mov ebx, dword [esp + 0x80]
push ebp
mov ebp, dword [esp + 0x80]
mov eax, ebx
sub eax, ebp
sar eax, 4
push esi
push edi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x90]
sar edi, 1
push eax
lea ecx, [ebx - 0x10]
shl edi, 4
push ecx
add edi, ebp
push edi
push ebp
call fcn.00462a80
add esp, 0x10
cmp ebp, edi
mov ecx, edi
lea esi, [edi + 0x10]
jae 0x463894
mov eax, dword [ecx - 0xc]
mov edx, dword [ecx + 4]
cmp eax, edx
mov edi, dword [ecx - 0x10]
mov ebx, dword [ecx]
jb 0x46388d
ja 0x46387c
cmp edi, ebx
jb 0x46388d
cmp edx, eax
jb 0x46388d
ja 0x463886
cmp ebx, edi
jb 0x46388d
add ecx, 0xfffffff0
cmp ebp, ecx
jb 0x463867
mov ebx, dword [esp + 0x8c]
cmp esi, ebx
jae 0x4638c5
mov ebx, dword [ecx]
mov edi, dword [ecx + 4]
lea ecx, [ecx]
mov eax, dword [esi + 4]
cmp eax, edi
mov edx, dword [esi]
jb 0x4638c5
ja 0x4638af
cmp edx, ebx
jb 0x4638c5
cmp edi, eax
jb 0x4638c5
ja 0x4638b9
cmp ebx, edx
jb 0x4638c5
add esi, 0x10
cmp esi, dword [esp + 0x8c]
jb 0x4638a0
mov eax, esi
mov ebx, ecx
lea esp, [esp]
cmp eax, dword [esp + 0x8c]
jae 0x463952
lea esp, [esp]
mov edx, dword [ecx + 4]
cmp edx, dword [eax + 4]
mov edi, dword [ecx]
mov ebp, dword [eax]
jb 0x463946
ja 0x4638f2
cmp edi, ebp
jb 0x463946
cmp dword [eax + 4], edx
jb 0x463952
ja 0x4638fd
cmp ebp, edi
jb 0x463952
mov edx, esi
mov ebp, dword [edx + 4]
mov edi, dword [edx]
mov dword [esp + 0x24], ebp
mov ebp, dword [edx + 8]
mov dword [esp + 0x28], ebp
mov ebp, dword [edx + 0xc]
mov dword [esp + 0x2c], ebp
mov ebp, dword [eax]
mov dword [edx], ebp
mov ebp, dword [eax + 4]
mov dword [edx + 4], ebp
mov ebp, dword [eax + 8]
mov dword [edx + 8], ebp
mov ebp, dword [eax + 0xc]
mov dword [edx + 0xc], ebp
mov edx, dword [esp + 0x24]
mov dword [eax], edi
mov dword [eax + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x2c]
add esi, 0x10
mov dword [eax + 0xc], edx
add eax, 0x10
cmp eax, dword [esp + 0x8c]
jb 0x4638e0
cmp ebx, dword [esp + 0x88]
jbe 0x4639e0
lea edx, [ebx - 0x10]
mov edi, dword [edx + 4]
cmp edi, dword [ecx + 4]
jb 0x4639ca
ja 0x463972
mov edi, dword [edx]
cmp edi, dword [ecx]
jb 0x4639ca
mov edi, dword [edx + 4]
cmp dword [ecx + 4], edi
jb 0x4639d9
ja 0x463982
mov edi, dword [edx]
cmp dword [ecx], edi
jb 0x4639d9
mov ebp, dword [ecx - 0xc]
mov edi, dword [ecx - 0x10]
sub ecx, 0x10
mov dword [esp + 0x34], ebp
mov ebp, dword [ecx + 8]
mov dword [esp + 0x38], ebp
mov ebp, dword [ecx + 0xc]
mov dword [esp + 0x3c], 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
mov dword [edx], edi
mov edi, dword [esp + 0x34]
mov dword [edx + 4], edi
mov edi, dword [esp + 0x38]
mov dword [edx + 8], edi
mov edi, dword [esp + 0x3c]
mov dword [edx + 0xc], edi
sub ebx, 0x10
sub edx, 0x10
cmp dword [esp + 0x88], ebx
jb 0x463962
cmp ebx, dword [esp + 0x88]
jne 0x463a91
cmp eax, dword [esp + 0x8c]
je 0x463b6c
cmp esi, eax
je 0x463a33
mov ebp, dword [ecx + 8]
mov edx, dword [ecx]
mov edi, dword [ecx + 4]
mov dword [esp + 0x48], ebp
mov ebp, dword [ecx + 0xc]
mov dword [esp + 0x4c], ebp
mov ebp, dword [esi]
mov dword [ecx], ebp
mov ebp, dword [esi + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [esi + 8]
mov dword [ecx + 8], ebp
mov ebp, dword [esi + 0xc]
mov dword [ecx + 0xc], ebp
mov dword [esi], edx
mov edx, dword [esp + 0x48]
mov dword [esi + 4], edi
mov dword [esi + 8], edx
mov edx, dword [esp + 0x4c]
mov dword [esi + 0xc], edx
mov edi, ecx
mov ebp, dword [edi]
mov dword [esp + 0x10], ebp
mov ebp, dword [edi + 4]
mov dword [esp + 0x14], ebp
mov ebp, dword [edi + 8]
mov edx, eax
mov dword [esp + 0x18], ebp
mov ebp, dword [edi + 0xc]
mov dword [esp + 0x1c], ebp
mov ebp, dword [edx]
mov dword [edi], ebp
mov ebp, dword [edx + 4]
mov dword [edi + 4], ebp
mov ebp, dword [edx + 8]
mov dword [edi + 8], ebp
mov ebp, dword [edx + 0xc]
mov dword [edi + 0xc], ebp
mov edi, dword [esp + 0x10]
mov dword [edx], edi
mov edi, dword [esp + 0x14]
mov dword [edx + 4], edi
mov edi, dword [esp + 0x18]
mov dword [edx + 8], edi
mov edi, dword [esp + 0x1c]
add esi, 0x10
add ecx, 0x10
add eax, 0x10
mov dword [edx + 0xc], edi
jmp 0x4638d0
sub ebx, 0x10
cmp eax, dword [esp + 0x8c]
jne 0x463b28
sub ecx, 0x10
cmp ebx, ecx
je 0x463ae4
mov ebp, dword [ebx + 8]
mov edx, dword [ebx]
mov edi, dword [ebx + 4]
mov dword [esp + 0x58], ebp
mov ebp, dword [ebx + 0xc]
mov dword [esp + 0x5c], ebp
mov ebp, dword [ecx]
mov dword [ebx], ebp
mov ebp, dword [ecx + 4]
mov dword [ebx + 4], ebp
mov ebp, dword [ecx + 8]
mov dword [ebx + 8], ebp
mov ebp, dword [ecx + 0xc]
mov dword [ebx + 0xc], ebp
mov dword [ecx], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + 4], edi
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x5c]
mov dword [ecx + 0xc], edx
mov ebp, dword [ecx + 8]
mov edx, dword [ecx]
mov edi, dword [ecx + 4]
sub esi, 0x10
mov dword [esp + 0x68], ebp
mov ebp, dword [ecx + 0xc]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esi]
mov dword [ecx], ebp
mov ebp, dword [esi + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [esi + 8]
mov dword [ecx + 8], ebp
mov ebp, dword [esi + 0xc]
mov dword [ecx + 0xc], ebp
mov dword [esi], edx
mov edx, dword [esp + 0x68]
mov dword [esi + 4], edi
mov dword [esi + 8], edx
mov edx, dword [esp + 0x6c]
mov dword [esi + 0xc], edx
jmp 0x4638d0
mov ebp, dword [eax + 8]
mov edx, dword [eax]
mov edi, dword [eax + 4]
mov dword [esp + 0x78], ebp
mov ebp, dword [eax + 0xc]
mov dword [esp + 0x7c], ebp
mov ebp, dword [ebx]
mov dword [eax], ebp
mov ebp, dword [ebx + 4]
mov dword [eax + 4], ebp
mov ebp, dword [ebx + 8]
mov dword [eax + 8], ebp
mov ebp, dword [ebx + 0xc]
mov dword [eax + 0xc], ebp
mov dword [ebx], edx
mov edx, dword [esp + 0x78]
mov dword [ebx + 4], edi
mov dword [ebx + 8], edx
mov edx, dword [esp + 0x7c]
mov dword [ebx + 0xc], edx
add eax, 0x10
jmp 0x4638d0
mov eax, dword [esp + 0x84]
pop edi
mov dword [eax + 4], esi
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x70
ret