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

Disassembly:
sub esp, 0xb0
push esi
mov esi, ecx
mov eax, dword [esi + 0x228]
test eax, eax
mov dword [esp + 0x24], esi
jne 0x450593
xor eax, eax
pop esi
add esp, 0xb0
ret 0x24
push edi
mov edi, dword [esp + 0xc4]
test edi, edi
jne 0x4505af
pop edi
mov eax, 1
pop esi
add esp, 0xb0
ret 0x24
mov ecx, dword [esp + 0xc8]
test ecx, ecx
jne 0x4505ca
pop edi
mov eax, 2
pop esi
add esp, 0xb0
ret 0x24
mov eax, dword [esp + 0xd8]
shl eax, 0x10
xor edx, edx
div edi
push ebx
xor edx, edx
push ebp
mov dword [esp + 0x84], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x80], edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xb8], edi
mov ebx, eax
mov eax, dword [esp + 0xe4]
shl eax, 0x10
div ecx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x74], edx
mov edx, dword [esi + 0x1c0]
lea ecx, [esp + 0x70]
mov dword [esp + 0x78], edx
mov edx, dword [esi + 0x1bc]
push ecx
mov ecx, esi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x80], edx
mov ebp, eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x74], eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xa8], eax
xor eax, eax
mov dword [esp + 0x60], ebp
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
call fcn.004470d0
test eax, eax
jne 0x450692
pop ebp
pop ebx
pop edi
mov eax, 3
pop esi
add esp, 0xb0
ret 0x24
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
imul eax, ebx
mov ecx, esi
imul edi, ebp
mov dword [esp + 0x50], eax
call fcn.004475d0
mov ebp, dword [esp + 0xd4]
mov ebx, eax
mov ecx, ebp
mov dword [esp + 0x14], ebx
call fcn.004475d0
test ebx, ebx
mov dword [esp + 0x4c], eax
jne 0x4506df
pop ebp
pop ebx
pop edi
mov eax, 1
pop esi
add esp, 0xb0
ret 0x24
test eax, eax
jne 0x4506f5
pop ebp
pop ebx
pop edi
mov eax, 2
pop esi
add esp, 0xb0
ret 0x24
mov ecx, esi
call fcn.00442b40
mov ebx, eax
mov ecx, ebp
mov dword [esp + 0x60], ebx
call fcn.00442b40
mov ebp, eax
mov eax, dword [esi + 0x228]
cmp eax, 0x378
mov dword [esp + 0x54], ebp
ja 0x450d5b
je 0x450b9d
sub eax, 0x22b
je 0x450977
sub eax, 0xa
jne 0x450f1a
mov eax, ebp
cdq
sub eax, edx
mov edx, dword [esp + 0x9c]
sar eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x8c]
lea ecx, [edx + eax]
cmp eax, ecx
jge 0x450f1a
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x88]
lea esi, [eax + edx]
mov edx, ebx
imul edx, dword [esp + 0x8c]
mov eax, edi
add edx, dword [esp + 0x14]
sub ecx, dword [esp + 0x8c]
mov dword [esp + 0x68], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x4c]
mov edi, eax
shr edi, 0x10
imul edi, ebp
add edi, ecx
mov ecx, dword [esp + 0x88]
shr eax, 8
cmp ecx, esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], ecx
jge 0x45094f
mov ecx, dword [esp + 0x50]
movzx eax, al
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], ecx
jmp 0x4507d3
mov edi, dword [esp + 0x34]
mov eax, ecx
shr ecx, 0x10
movzx edx, word [edi + ecx*2]
shr eax, 8
mov esi, edx
mov ebx, edx
and edx, 0x1f
mov byte [esp + 0x13], al
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x38]
lea eax, [ecx + edx]
movzx edx, word [edi + eax*2]
movzx ecx, word [edi + ecx*2 + 2]
and esi, 0xf800
lea eax, [edi + eax*2]
movzx edi, byte [esp + 0x13]
and ebx, 0x7e0
mov dword [esp + 0x48], eax
mov ebp, edx
mov eax, edx
and edx, 0x1f
and eax, 0x7e0
mov dword [esp + 0x64], edx
mov edx, ecx
and edx, 0xf800
sub edx, esi
imul edx, edi
and ebp, 0xf800
inc esi
imul esi, esi, 0xff
add edx, esi
mov esi, ecx
and esi, 0x7e0
sub esi, ebx
imul esi, edi
sar edx, 8
inc ebx
imul ebx, ebx, 0xff
add esi, ebx
mov ebx, dword [esp + 0x14]
sar esi, 8
and ecx, 0x1f
sub ecx, ebx
imul ecx, edi
inc ebx
imul ebx, ebx, 0xff
add ecx, ebx
sar ecx, 8
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x48]
movzx ecx, word [ecx + 2]
mov ebx, ecx
and ebx, 0x7e0
sub ebx, eax
imul ebx, edi
inc eax
imul eax, eax, 0xff
add ebx, eax
mov eax, dword [esp + 0x64]
sar ebx, 8
sub ebx, esi
imul ebx, dword [esp + 0x20]
inc esi
imul esi, esi, 0xff
add ebx, esi
mov esi, ecx
and esi, 0x1f
sub esi, eax
imul esi, edi
sar ebx, 8
and ebx, 0x7e0
inc eax
imul eax, eax, 0xff
add esi, eax
mov eax, dword [esp + 0x14]
sar esi, 8
sub esi, eax
imul esi, dword [esp + 0x20]
inc eax
imul eax, eax, 0xff
add esi, eax
and ecx, 0xf800
sub ecx, ebp
imul ecx, edi
sar esi, 8
and esi, 0x1f
or ebx, esi
inc ebp
imul ebp, ebp, 0xff
add ecx, ebp
mov eax, dword [esp + 0x3c]
sar ecx, 8
sub ecx, edx
imul ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x68]
inc edx
imul edx, edx, 0xff
add ecx, edx
mov edx, dword [esp + 0x2c]
sar ecx, 8
and ecx, 0xf800
or ebx, ecx
mov ecx, dword [esp + 0x40]
mov word [edx + eax*2], bx
mov ebx, dword [esp + 0x58]
inc eax
add ecx, ebx
cmp eax, esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
jl 0x4507cf
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x28]
add edx, ebx
add eax, edi
dec ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], ecx
jne 0x450796
jmp 0x450f16
mov ecx, dword [esp + 0x9c]
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x8c]
add ecx, eax
cmp eax, ecx
jge 0x450f1a
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x88]
lea esi, [edx + eax]
mov edx, ebx
imul edx, dword [esp + 0x8c]
mov eax, edi
add edx, dword [esp + 0x14]
sub ecx, dword [esp + 0x8c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x4c]
mov edi, eax
shr edi, 0x10
imul edi, ebp
add edi, ecx
mov ecx, dword [esp + 0x88]
shr eax, 8
cmp ecx, esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x3c], ecx
jge 0x450b75
mov ecx, dword [esp + 0x50]
movzx eax, al
mov ebx, 0xff
sub ebx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x14], ecx
jmp 0x450a20
mov edi, dword [esp + 0x68]
lea ebx, [ebx]
mov edx, dword [esp + 0x64]
mov eax, ecx
shr ecx, 0x10
movzx ebp, word [edi + ecx*2]
add edx, ecx
movzx ecx, word [edi + ecx*2 + 2]
movzx esi, word [edi + edx*2]
lea edx, [edi + edx*2]
movzx edx, word [edx + 2]
mov dword [esp + 0x18], esi
mov dword [esp + 0x2c], ebp
and ebp, 0x3e0
shr eax, 8
movzx esi, al
mov edi, ecx
and edi, 0x3e0
imul edi, esi
mov eax, 0xff
sub eax, esi
imul ebp, eax
add edi, ebp
mov ebp, dword [esp + 0x18]
shr edi, 8
imul edi, ebx
and ebp, 0x3e0
imul ebp, eax
mov ebx, edx
and ebx, 0x3e0
imul ebx, esi
add ebx, ebp
mov ebp, dword [esp + 0x2c]
shr ebx, 8
imul ebx, dword [esp + 0x28]
add edi, ebx
mov ebx, ecx
and ebx, 0x1f
imul ebx, esi
and ebp, 0x1f
imul ebp, eax
add ebx, ebp
mov dword [esp + 0x6c], esi
mov ebp, edx
and ebp, 0x1f
imul ebp, esi
mov esi, dword [esp + 0x18]
and esi, 0x1f
imul esi, eax
add ebp, esi
shr ebp, 8
shr ebx, 8
imul ebx, dword [esp + 0x40]
mov esi, ebp
mov ebp, dword [esp + 0x28]
imul esi, ebp
add ebx, esi
mov esi, dword [esp + 0x2c]
shr edi, 8
shr ebx, 8
and edi, 0x3e0
and ebx, 0x1f
or edi, ebx
and ecx, 0x7c00
and esi, 0x7c00
imul esi, eax
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x6c]
imul ecx, edi
mov ebx, dword [esp + 0x40]
add ecx, esi
mov esi, dword [esp + 0x18]
and edx, 0x7c00
imul edx, edi
and esi, 0x7c00
imul esi, eax
add edx, esi
shr ecx, 8
shr edx, 8
imul ecx, ebx
imul edx, ebp
add ecx, edx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x44]
shr ecx, 8
and ecx, 0x7c00
or eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov word [edx + eax*2], cx
mov ecx, dword [esp + 0x14]
inc eax
add ecx, ebp
cmp eax, esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], ecx
jl 0x450a16
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x34]
add edx, ebx
add eax, edi
dec ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], ecx
jne 0x4509d2
jmp 0x450f16
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x9c]
lea edx, [ecx + eax]
cmp eax, edx
jge 0x450f1a
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x88]
add ecx, eax
mov dword [esp + 0x44], ecx
mov esi, edi
mov edi, dword [esp + 0x8c]
mov ecx, ebx
imul ecx, edi
add ecx, dword [esp + 0x14]
sub edx, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], edx
lea ebx, [ebx]
mov edx, dword [esp + 0x4c]
mov edi, esi
shr edi, 0x10
imul edi, ebp
add edi, edx
mov edx, esi
shr edx, 8
mov byte [esp + 0x18], dl
mov edx, dword [esp + 0x44]
cmp eax, edx
jge 0x450d37
mov esi, dword [esp + 0x50]
lea ecx, [ecx + eax*2]
lea ebx, [edi + ebp]
lea ebp, [eax + ecx + 2]
mov ecx, edx
sub ecx, eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x34], ecx
jmp 0x450c33
mov esi, dword [esp + 0x14]
mov edx, esi
xor eax, eax
shr esi, 0x10
lea esi, [esi + esi*2]
mov al, byte [ebx + esi + 3]
push 0x4b4630
shr edx, 8
xor ecx, ecx
mov cl, byte [ebx + esi]
mov byte [esp + 0x24], dl
xor edx, edx
mov dl, byte [edi + esi + 3]
push eax
xor eax, eax
mov al, byte [esi + edi]
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
mov ecx, dword [esp + 0x48]
push edx
lea eax, [esp + 0x2f]
push eax
call fcn.00446df0
xor ecx, ecx
mov cl, byte [ebx + esi + 4]
push 0x4b4630
xor edx, edx
mov dl, byte [ebx + esi + 1]
xor eax, eax
mov al, byte [edi + esi + 4]
push ecx
xor ecx, ecx
mov cl, byte [edi + esi + 1]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x30]
push ecx
push edx
push eax
lea ecx, [esp + 0x43]
push ecx
mov ecx, dword [esp + 0x50]
call fcn.00446df0
xor edx, edx
mov dl, byte [ebx + esi + 5]
push 0x4b4630
xor eax, eax
mov al, byte [ebx + esi + 2]
xor ecx, ecx
mov cl, byte [edi + esi + 5]
push edx
xor edx, edx
mov dl, byte [edi + esi + 2]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x30]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x3b]
push edx
call fcn.00446df0
mov al, byte [esp + 0x13]
mov cl, byte [esp + 0x27]
mov dl, byte [esp + 0x1f]
mov byte [ebp - 2], al
mov eax, dword [esp + 0x58]
mov byte [ebp - 1], cl
mov ecx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x34]
mov byte [ebp], dl
add ebp, 3
mov dword [esp + 0x14], ecx
dec eax
mov dword [esp + 0x34], eax
jne 0x450c2f
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x54]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x2c]
add ecx, ebx
add esi, edi
dec edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edx
jne 0x450bf0
jmp 0x450f16
cmp eax, 0x22b8
jne 0x450f1a
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x9c]
lea edx, [ecx + eax]
cmp eax, edx
jge 0x450f1a
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x88]
add eax, ecx
mov dword [esp + 0x44], eax
mov esi, edi
mov edi, dword [esp + 0x8c]
mov eax, ebx
imul eax, edi
add eax, dword [esp + 0x14]
sub edx, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x4c]
mov edi, esi
shr edi, 0x10
imul edi, ebp
add edi, edx
mov edx, esi
shr edx, 8
mov byte [esp + 0x18], dl
mov edx, dword [esp + 0x44]
cmp ecx, edx
jge 0x450ef7
mov esi, dword [esp + 0x50]
lea ebx, [edi + ebp]
lea ebp, [eax + ecx*4 + 2]
mov eax, edx
sub eax, ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x34], eax
jmp 0x450df3
mov esi, dword [esp + 0x14]
mov eax, esi
xor ecx, ecx
shr esi, 0x10
shl esi, 2
mov cl, byte [ebx + esi + 4]
push 0x4b4630
shr eax, 8
xor edx, edx
mov dl, byte [ebx + esi]
mov byte [esp + 0x24], al
xor eax, eax
mov al, byte [edi + esi + 4]
push ecx
xor ecx, ecx
mov cl, byte [esi + edi]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x30]
push ecx
push edx
push eax
lea ecx, [esp + 0x3b]
push ecx
mov ecx, dword [esp + 0x50]
call fcn.00446df0
xor edx, edx
mov dl, byte [ebx + esi + 5]
push 0x4b4630
xor eax, eax
mov al, byte [ebx + esi + 1]
xor ecx, ecx
mov cl, byte [edi + esi + 5]
push edx
xor edx, edx
mov dl, byte [edi + esi + 1]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x30]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x43]
push edx
call fcn.00446df0
xor eax, eax
mov al, byte [ebx + esi + 6]
push 0x4b4630
xor ecx, ecx
mov cl, byte [ebx + esi + 2]
xor edx, edx
mov dl, byte [edi + esi + 6]
push eax
xor eax, eax
mov al, byte [edi + esi + 2]
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
mov ecx, dword [esp + 0x48]
push edx
lea eax, [esp + 0x2f]
push eax
call fcn.00446df0
mov cl, byte [esp + 0x1f]
mov dl, byte [esp + 0x27]
mov al, byte [esp + 0x13]
mov byte [ebp - 1], dl
mov edx, dword [esp + 0x14]
mov byte [ebp - 2], cl
mov ecx, dword [esp + 0x58]
mov byte [ebp], al
mov eax, dword [esp + 0x34]
add edx, ecx
add ebp, 4
mov dword [esp + 0x14], edx
dec eax
mov dword [esp + 0x34], eax
jne 0x450def
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x88]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x2c]
add eax, ebx
add esi, edi
dec edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edx
jne 0x450db3
mov esi, dword [esp + 0x30]
mov ecx, esi
call fcn.00447640
mov ecx, dword [esp + 0xd4]
call fcn.00447640
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0xb0
ret 0x24