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

Disassembly:
sub esp, 0x5a4
push ebx
mov ebx, ecx
mov dword [esp + 4], edx
push ebp
push esi
push edi
mov eax, dword [ebx + 0x90c]
lea edi, [ebx + 0xad4]
mov dword [esp + 0x68], ebx
cmp eax, dword [edi + 0x568]
je 0x454ab6
call fcn.00454a33
mov eax, dword [ebx + 0x90c]
mov dword [edi + 0x568], eax
xor ebp, ebp
mov dword [esp + 0x1c], ebp
cmp dword [ebx + 0x1040], ebp
jne 0x454c04
cmp dword [ebx + 0x1044], ebp
jne 0x454c04
cmp dword [ebx + 0x924], ebp
jle 0x454b3a
lea eax, [edi + 0x500]
mov dword [esp + 0x18], eax
lea eax, [ebx + 0x928]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], eax
movsx edx, word [eax]
movzx esi, word [edi]
movsx eax, si
sub edx, eax
movzx eax, dx
imul ecx, eax, 0x3fdc
sar edx, 0x10
imul eax, edx, 0x3fdc
sar ecx, 0x10
add ecx, esi
add eax, ecx
inc ebp
mov word [edi], ax
lea edi, [edi + 2]
mov eax, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x14], eax
cmp ebp, dword [ebx + 0x924]
jl 0x454af4
xor ebp, ebp
lea edi, [ebx + 0xad4]
mov eax, dword [ebx + 0x914]
mov esi, ebp
mov dword [esp + 0x18], ebp
mov edx, ebp
test eax, eax
jle 0x454b79
mov edi, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edx*4 + 0x10]
cmp ecx, ebp
mov eax, edx
cmovle eax, esi
inc edx
cmp ecx, ebp
mov esi, eax
cmovle ecx, ebp
mov ebp, ecx
cmp edx, edi
jl 0x454b4e
mov eax, dword [ebx + 0x914]
lea edi, [ebx + 0xad4]
xor ebp, ebp
mov ecx, dword [ebx + 0x91c]
lea eax, [eax*4 - 4]
imul eax, ecx
push eax
lea eax, [edi + ecx*4]
push edi
push eax
call fcn.005044e0
mov ecx, dword [ebx + 0x91c]
mov eax, ecx
imul ecx, esi
shl eax, 2
push eax
inc ecx
lea eax, [ebx + ecx*4]
push eax
push edi
call fcn.00505060
add esp, 0x18
mov dword [esp + 0x14], ebp
cmp dword [ebx + 0x914], ebp
jle 0x454c04
mov ebp, dword [esp + 0x10]
mov esi, dword [edi + 0x560]
add ebp, 0x10
mov edx, dword [ebp]
lea ebp, [ebp + 4]
sub edx, esi
movzx eax, dx
imul ecx, eax, 0x121a
sar edx, 0x10
imul eax, edx, 0x121a
sar ecx, 0x10
add esi, eax
mov eax, dword [esp + 0x14]
add esi, ecx
inc eax
mov dword [edi + 0x560], esi
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 0x914]
jl 0x454bca
xor ebp, ebp
lea esi, [edi + 0x520]
mov dword [esp + 0x70], esi
cmp dword [ebx + 0x1040], ebp
je 0x454fd7
lea eax, [edi + 0x564]
mov edx, edi
push eax
push dword [esp + 0x5c0]
lea ecx, [esp + 0xbc]
push dword [edi + 0x560]
call fcn.0045497c
push dword [ebx + 0x924]
lea edx, [edi + 0x500]
lea ecx, [esp + 0x34]
call fcn.0045df4d
mov eax, dword [esp + 0x5cc]
lea edi, [esp + 0x84]
add esp, 0x10
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
test eax, eax
jle 0x454fc5
movsx eax, word [esp + 0x30]
mov dword [esp + 0x50], eax
movsx eax, word [esp + 0x32]
mov dword [esp + 0x54], eax
movsx eax, word [esp + 0x34]
mov dword [esp + 0x4c], eax
movsx eax, word [esp + 0x24]
mov dword [esp + 0x48], eax
movsx eax, word [esp + 0x28]
mov dword [esp + 0x64], eax
movsx eax, word [esp + 0x2a]
mov dword [esp + 0x60], eax
movsx eax, word [esp + 0x2c]
mov dword [esp + 0x5c], eax
movsx eax, word [esp + 0x2e]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + ebp*4 + 0x98]
mov ebp, dword [esp + ebp*4 + 0x94]
mov edx, dword [esp + eax*4 + 0x8c]
mov esi, dword [esp + eax*4 + 0x90]
mov ecx, dword [esp + eax*4 + 0xb0]
mov edi, dword [esp + eax*4 + 0x9c]
mov dword [esp + 0x18], edx
movzx eax, cx
imul eax, dword [esp + 0x48]
sar ecx, 0x10
sar eax, 0x10
mov dword [esp + 0x10], eax
movzx eax, dx
movsx edx, word [esp + 0x36]
imul eax, edx
mov edx, dword [esp + 0x10]
sar eax, 0x10
add edx, eax
movzx eax, si
imul eax, dword [esp + 0x4c]
sar esi, 0x10
sar eax, 0x10
add edx, eax
movzx eax, bx
imul eax, dword [esp + 0x50]
sar ebx, 0x10
sar eax, 0x10
add edx, eax
movzx eax, bp
imul eax, dword [esp + 0x54]
sar ebp, 0x10
sar eax, 0x10
add edx, eax
movzx eax, di
imul eax, dword [esp + 0x58]
sar eax, 0x10
add edx, eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + edx*4 + 0xa0]
movzx eax, ax
imul eax, dword [esp + 0x5c]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esp + edx*4 + 0xa4]
movzx eax, ax
imul eax, dword [esp + 0x60]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esp + edx*4 + 0xa8]
movzx eax, ax
imul eax, dword [esp + 0x64]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esp + edx*4 + 0xac]
movsx edx, word [esp + 0x26]
movzx eax, ax
imul eax, edx
mov edx, dword [esp + 0x18]
sar edx, 0x10
sar eax, 0x10
add dword [esp + 0x10], eax
movsx eax, word [esp + 0x24]
imul ecx, eax
mov eax, dword [esp + 0x10]
add eax, ecx
movsx ecx, word [esp + 0x36]
imul edx, ecx
add eax, edx
mov dword [esp + 0x10], eax
movsx eax, word [esp + 0x34]
mov edx, dword [esp + 0x10]
imul esi, eax
movsx eax, word [esp + 0x30]
imul ebx, eax
movsx eax, word [esp + 0x32]
imul ebp, eax
add edx, esi
add edx, ebx
add edx, ebp
mov ebp, dword [esp + 0x1c]
movsx eax, word [esp + 0x2e]
movsx ecx, word [esp + 0x2c]
sar edi, 0x10
imul edi, eax
mov eax, dword [esp + ebp*4 + 0xa0]
sar eax, 0x10
imul eax, ecx
movsx ecx, word [esp + 0x2a]
add edx, edi
add edx, eax
mov eax, dword [esp + ebp*4 + 0xa4]
sar eax, 0x10
imul eax, ecx
movsx ecx, word [esp + 0x28]
add edx, eax
mov eax, dword [esp + ebp*4 + 0xa8]
sar eax, 0x10
imul eax, ecx
movsx ecx, word [esp + 0x26]
add edx, eax
mov eax, dword [esp + ebp*4 + 0xac]
sar eax, 0x10
imul eax, ecx
add edx, eax
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x924]
mov eax, ecx
sar eax, 1
add edx, eax
mov dword [esp + 0x10], edx
cmp ecx, 0x10
jne 0x454f77
mov eax, dword [esp + 0x3a]
cwde
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3e]
cwde
mov dword [esp + 0x20], eax
mov ax, word [esp + 0x42]
cwde
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x38]
movsx ebx, ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + ebp*4 + 0x88]
movsx esi, cx
mov edi, dword [esp + eax*4 + 0x80]
mov edx, dword [esp + eax*4 + 0x78]
mov eax, dword [esp + 0x40]
movsx ecx, ax
movzx eax, dx
imul eax, ecx
mov dword [esp + 0x6c], ebx
sar edx, 0x10
imul edx, ecx
sar eax, 0x10
mov dword [esp + 0x14], eax
movzx eax, di
imul eax, esi
sar edi, 0x10
imul edi, esi
sar eax, 0x10
add dword [esp + 0x14], eax
movzx eax, bp
imul eax, ebx
mov ebx, dword [esp + 0x1c]
sar ebp, 0x10
imul ebp, dword [esp + 0x6c]
sar eax, 0x10
add dword [esp + 0x14], eax
mov eax, dword [esp + ebx*4 + 0x74]
movzx eax, ax
imul eax, dword [esp + 0x44]
sar eax, 0x10
add dword [esp + 0x14], eax
mov eax, dword [esp + ebx*4 + 0x7c]
movzx eax, ax
imul eax, dword [esp + 0x20]
sar eax, 0x10
add dword [esp + 0x14], eax
mov eax, dword [esp + ebx*4 + 0x84]
movzx eax, ax
imul eax, dword [esp + 0x18]
sar eax, 0x10
add dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
add ecx, edx
mov edx, dword [esp + 0x10]
add ecx, edi
add ecx, ebp
mov ebp, ebx
mov eax, dword [esp + ebp*4 + 0x74]
sar eax, 0x10
imul eax, dword [esp + 0x44]
add ecx, eax
mov eax, dword [esp + ebp*4 + 0x7c]
sar eax, 0x10
imul eax, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + ebp*4 + 0x84]
sar eax, 0x10
imul eax, dword [esp + 0x18]
add edx, eax
add edx, ecx
mov ecx, dword [esp + 0x5b8]
mov eax, edx
shl eax, 4
add dword [esp + ebp*4 + 0xb4], eax
sar edx, 5
movsx eax, word [ecx + ebp*2]
inc edx
sar edx, 1
add eax, edx
mov edx, 0x7fff
cmp eax, edx
jle 0x454fa3
mov eax, edx
jmp 0x454fad
mov edx, 0xffff8000
cmp eax, edx
cmovl eax, edx
mov word [ecx + ebp*2], ax
inc ebp
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x1c], ebp
cmp ebp, eax
jl 0x454cb7
mov edi, dword [esp + 0x70]
lea esi, [esp + 0x74]
push 0x10
lea esi, [esi + eax*4]
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0x454feb
mov eax, dword [ebx + 0x924]
shl eax, 2
push eax
push ebp
push esi
call fcn.005055e0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5a4
ret