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

Disassembly:
sub esp, 0xb28
push ebx
push ebp
mov ebx, ecx
mov dword [esp + 0x18], ebx
push esi
push edi
test ebx, ebx
je 0x454e64
test edx, edx
je 0x454e64
mov esi, dword [edx + 4]
xor eax, eax
test esi, esi
je 0x454db7
mov ecx, dword [edx]
lea edx, [ebx + 0xc964]
mov edi, edx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esi + ecx]
mov dword [edx + 4], ecx
mov ecx, ebx
mov dword [edx + 8], eax
call fcn.00454570
test eax, eax
js 0x454e67
xor eax, eax
lea ecx, [ebx + 0x110]
mov dword [esp + 0x40], ecx
cmp byte [ebx + 0x318], al
je 0x4549d3
cmp dword [ecx], eax
jl 0x4549c4
cmp dword [ebx + 0x114], eax
jge 0x4549d3
mov ecx, ebx
call fcn.00451c40
mov eax, dword [ebx + 0x118]
jmp 0x4549e9
cmp eax, dword [ecx]
je 0x4549dc
cmp eax, dword [ecx + 4]
jne 0x4549df
inc eax
jmp 0x4549d3
mov dword [ebx + 0x118], eax
mov dword [esp + 0x40], ecx
cmp byte [ebx + 0x318], 0
mov ecx, ebx
mov dword [esp + 0x28], eax
jne 0x454a17
call fcn.00454440
mov eax, dword [ebx + 0x308]
mov dword [ebx + 0x300], eax
mov eax, dword [ebx + 0x30c]
mov dword [ebx + 0x304], eax
jmp 0x454a2a
call fcn.004540e0
mov ecx, ebx
call fcn.00453fb0
mov ecx, ebx
call fcn.00453bd0
mov ecx, ebx
call fcn.00453a00
mov ecx, ebx
call fcn.00453490
mov ecx, dword [esp + 0x20]
mov edi, dword [ebx + 0x300]
mov esi, dword [ebx + 0x304]
mov ebp, dword [ebx + 0x308]
movzx eax, byte [ecx + 0x319]
mov ecx, dword [ecx + 0x3c]
mov ebx, dword [ebx + 0x30c]
cdq
add eax, edi
adc edx, esi
call fcn.00435830
mov ecx, eax
mov eax, dword [esp + 0xb3c]
sub ecx, edi
push 0
sbb edx, esi
add ecx, ebp
mov esi, dword [esp + 0x24]
adc edx, ebx
add ebp, 1
pop edi
adc ebx, edi
mov dword [esi + 0x310], ecx
mov dword [esi + 0x314], edx
mov dword [esi + 0x308], ebp
mov dword [esi + 0x30c], ebx
test eax, eax
je 0x454aa6
mov dword [eax], ecx
mov dword [eax + 4], edx
lea edx, [esp + 0x78]
mov ecx, esi
call fcn.00453080
lea edx, [esi + 0xd2d8]
lea ecx, [esp + 0x48]
call fcn.00457140
mov eax, dword [esp + 0xb2c]
lea edx, [esi + 0x70]
mov ebp, dword [esp + 0x28]
mov ecx, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x38], ecx
mov edx, dword [edx]
lea ebx, [eax + ecx]
xor eax, eax
mov dword [esp + 0x44], ebx
cmp ebx, edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x34], edx
mov ebx, edi
setl al
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], eax
lea eax, [esi + 0x70]
mov dword [esp + 0x30], eax
test ebx, ebx
je 0x454b14
test byte [esi + 0x30], 2
jne 0x454b14
xor eax, eax
inc eax
mov dword [esp + 0x2c], eax
jmp 0x454b1a
mov eax, edi
mov dword [esp + 0x2c], edi
mov edx, ecx
mov ecx, eax
sar edx, cl
mov ecx, dword [esp + 0x2c]
mov dword [esp + ebx*4 + 0xaf0], edx
mov eax, dword [esp + 0xb2c]
sar eax, cl
push ebx
lea ecx, [eax + edx]
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x7c]
mov eax, dword [eax]
cmp ecx, eax
cmovl eax, ecx
mov ecx, esi
mov dword [esp + ebx*4 + 0xb00], eax
call fcn.00452cc0
pop ecx
push ebx
lea edx, [esp + 0x7c]
mov ecx, esi
call fcn.00452a40
cmp dword [esp + 0xb34], 0
mov eax, edi
mov edx, edi
mov dword [esp + 0x14], eax
pop ecx
mov dword [esp + 0x14], edx
je 0x454bb8
mov edx, dword [esp + 0x24]
mov eax, dword [esp + ebx*4 + 0xafc]
mov ecx, dword [esp + 0x18]
sub eax, edx
push eax
mov eax, dword [esp + ebx*4 + 0xaf4]
sub eax, ecx
mov dword [esp + 0x18], ecx
push eax
mov dword [esp + 0x18], edx
mov ecx, esi
push ebx
push ebp
lea edx, [esp + 0x88]
call fcn.00458da0
mov eax, dword [esp + 0x20]
add esp, 0x10
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + ebx*4 + 0xafc]
sub ecx, eax
add eax, eax
shl ecx, 3
sub ecx, eax
lea eax, [edx + edx]
push ecx
mov ecx, dword [esp + ebx*4 + 0xaf4]
sub ecx, edx
mov edx, ebp
shl ecx, 3
sub ecx, eax
push ecx
push ebx
mov ecx, esi
call fcn.00458e10
add esp, 0xc
test ebx, ebx
push 2
pop eax
push 5
pop ecx
cmovne eax, ecx
cmp dword [esp + 0xb34], eax
jl 0x454d94
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x24]
mov eax, dword [esp + ebx*4 + 0xafc]
mov edx, dword [esp + 0x14]
sub eax, ecx
add edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + ebx*4 + 0xaf4]
sub eax, edx
mov dword [esp + 0x18], edx
push eax
lea eax, [ebp + 6]
mov dword [esp + 0x18], ecx
imul eax, eax, 0x30
lea edx, [esi + 0xd2d8]
push ebx
mov ecx, esi
add eax, esi
push eax
call fcn.004523b0
add esp, 0x10
test ebx, ebx
push 3
pop eax
push 6
pop ecx
cmovne eax, ecx
cmp dword [esp + 0xb34], eax
jl 0x454c97
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x24]
mov eax, dword [esp + ebx*4 + 0xafc]
mov edx, dword [esp + 0x14]
sub eax, ecx
add edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + ebx*4 + 0xaf4]
sub eax, edx
mov dword [esp + 0x18], edx
push eax
mov dword [esp + 0x18], ecx
lea edx, [esi + 0xd2d8]
push ebx
mov ecx, esi
call fcn.00451cb0
add esp, 0xc
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + ebx*4 + 0xaf0]
mov ebp, dword [esp + 0x1c]
sub eax, ecx
mov ecx, dword [esp + 0x2c]
shl eax, cl
cmp eax, ebp
cmovl ebp, eax
mov eax, ebp
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + ebx*4 + 0xafc]
sub eax, edx
shl eax, cl
mov ecx, dword [esp + 0x34]
cmp eax, ecx
cmovl ecx, eax
add dword [esp + 0x30], 0x20
inc ebx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x38]
cmp ebx, 3
jl 0x454b01
cmp dword [esi + 0xd30c], edi
je 0x454d30
mov ecx, esi
call fcn.004591e0
mov ecx, dword [esi + 0x70]
mov eax, ecx
sub eax, dword [esp + 0x1c]
sub ecx, dword [esp + 0x34]
push eax
push ecx
lea eax, [esp + 0x50]
push eax
push dword [esi + 0xd308]
mov esi, dword [esi + 0xd30c]
mov ecx, esi
call dword [0x4b25a8]
call esi
mov esi, dword [esp + 0x30]
add esp, 0x10
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xb2c]
add ecx, eax
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x3c]
lea edx, [esi + 0x70]
mov dword [esp + 0x18], 1
mov dword [esp + 0x38], ecx
jl 0x454ad8
push edi
mov edx, ebp
mov ecx, esi
call fcn.00458ea0
inc edi
pop ecx
cmp edi, 3
jl 0x454d5a
cmp byte [esi + 0x318], 0
mov ecx, dword [esi + 0x118]
jne 0x454d80
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
mov dword [esi + 0x114], ecx
mov ecx, esi
call fcn.004591e0
xor eax, eax
jmp 0x454e67
cmp dword [esp + 0xb30], 0
je 0x454c97
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
add ecx, dword [esp + 0x18]
add edx, dword [esp + 0x24]
jmp 0x454c9f
cmp dword [ebx + 0x110], eax
jl 0x454dc7
cmp dword [ebx + 0x114], eax
jge 0x454deb
call fcn.00451c40
mov eax, dword [ebx + 0x114]
lea edi, [ebx + 0xd2d8]
mov dword [ebx + 0x118], eax
add eax, 6
imul esi, eax, 0x30
push 0xc
pop ecx
add esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x20]
mov edi, dword [ebx + 0x300]
mov esi, dword [ebx + 0x304]
mov ebp, dword [ebx + 0x308]
movzx eax, byte [ecx + 0x319]
mov ecx, dword [ecx + 0x3c]
mov ebx, dword [ebx + 0x30c]
cdq
add eax, edi
adc edx, esi
call fcn.00435830
mov ecx, eax
mov eax, dword [esp + 0x20]
sub ecx, edi
sbb edx, esi
add ecx, ebp
mov dword [esp + 0x3c], ecx
adc edx, ebx
mov dword [eax + 0x310], ecx
mov ecx, dword [esp + 0xb3c]
add ebp, 1
mov dword [eax + 0x314], edx
adc ebx, 0
mov dword [eax + 0x308], ebp
mov dword [eax + 0x30c], ebx
test ecx, ecx
je 0x454e5f
mov eax, dword [esp + 0x3c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
xor eax, eax
inc eax
jmp 0x454e67
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb28
ret