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

Disassembly:
sub esp, 0x160
push ebx
mov ebx, dword [0x4b5b4c]
push ebp
mov ebp, dword [esp + 0x16c]
fild dword [ebx + 0xb440]
mov edx, dword [ebp + 0x190]
mov eax, dword [ebp + 0x13bc]
xor ecx, ecx
cmp edx, 1
fsubr dword [ebp + 0x1354]
push esi
push edi
mov edi, dword [eax + 0x10]
fmul dword [esp + 0x178]
setne cl
mov dword [esp + 0x14], ecx
call fcn.004922ac
fild dword [ebx + 0xb444]
mov esi, eax
mov dword [esp + 0x20], esi
fsubr dword [ebp + 0x1358]
fmul dword [esp + 0x178]
call fcn.004922ac
mov ebx, dword [ebp + 0x1000]
mov ecx, dword [ebp + 0xffc]
and ebx, ecx
mov dword [esp + 0x18], eax
test edi, edi
mov dword [esp + 0x10], 0
je 0x447bff
mov edx, dword [edi + 0x28]
mov ecx, ebx
and ecx, 0x800
mov eax, dword [edi + 0x2c]
neg ecx
sbb ecx, ecx
mov dword [esp + 0x24], edx
mov edx, ebx
and ecx, 0xffffffd8
and edx, 0x400
add ecx, 0x48
neg edx
sbb edx, edx
mov dword [esp + 0x2c], eax
mov eax, ebx
and edx, 0xffffffcd
and eax, 0x200
add edx, 0x53
neg eax
sbb eax, eax
push ecx
mov ecx, ebx
and al, 0xd2
and ecx, 0x100
add eax, 0x4e
neg ecx
sbb ecx, ecx
push edx
mov edx, ebx
and ecx, 0xffffffd8
and dl, 0x80
add ecx, 0x48
neg dl
sbb edx, edx
push eax
mov eax, ebx
and edx, 0xffffffcd
and al, 0x40
add edx, 0x53
neg al
push ecx
mov ecx, ebx
sbb eax, eax
and cl, 0x20
and al, 0xd2
push edx
add eax, 0x4e
mov edx, ebx
neg cl
sbb ecx, ecx
and dl, 0x10
and ecx, 0xffffffd8
push eax
add ecx, 0x48
mov eax, ebx
neg dl
sbb edx, edx
and al, 8
and edx, 0xffffffcd
push ecx
add edx, 0x53
mov ecx, ebx
neg al
sbb eax, eax
and cl, 4
and al, 0xd2
push edx
add eax, 0x4e
mov edx, ebx
neg cl
sbb ecx, ecx
and dl, 2
and ecx, 0xffffffdf
push eax
add ecx, 0x41
neg dl
sbb edx, edx
push ecx
and edx, 0xffffffdd
add edx, 0x43
push edx
mov eax, ebx
lea ecx, [esp + 0x9c]
and al, 1
neg al
sbb eax, eax
and al, 0xcd
add eax, 0x53
push eax
push str._c_c_c_c_c_c_c_c_c_c_c_c
push ecx
call fcn.00492257
add esp, 0x38
test bl, 7
je 0x447388
mov eax, dword [ebp + 0xff8]
test eax, eax
jg 0x447388
test ebx, 0xff8
jne 0x4473ae
mov edx, dword [str.MUTEKI]
mov ax, word [0x4aa91c]
mov cl, byte [0x4aa91e]
mov dword [esp + 0x70], edx
mov word [esp + 0x74], ax
mov byte [esp + 0x76], cl
mov edi, 1
jmp 0x4473b2
mov edi, dword [esp + 0x10]
cmp ebx, 0xfff
je 0x4473c8
mov dword [esp + 0x10], 1
mov edi, dword [esp + 0x10]
jmp 0x4473cc
test edi, edi
je 0x447425
push 0xd4
push 0xff
push 0xff
call dword [sym.imp.alleg40.dll_Ordinal_412]
mov edx, dword [esp + 0x24]
mov ecx, dword [0x4b5b4c]
push eax
add edx, 0xfffffffe
lea eax, [esi - 0x1c]
push edx
mov edx, dword [ecx + 0x5cd4]
push eax
lea eax, [esp + 0x88]
push edx
push eax
call fcn.0041b020
add esp, 0x20
test edi, edi
je 0x447425
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov eax, 0xf
mov edx, 0x1f
mov ecx, dword [ecx]
shl eax, cl
jmp 0x447464
mov eax, dword [ebp + 0xe10]
test eax, eax
je 0x447453
mov edx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov eax, 0x18
mov ecx, dword [edx]
xor edx, edx
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
or eax, edx
mov edx, 8
jmp 0x447472
mov edx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov eax, 0x1f
mov ecx, dword [edx]
shl eax, cl
xor edx, edx
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
or eax, edx
xor edx, edx
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
fld dword [esp + 0x178]
mov ecx, dword [ecx]
fmul dword [ebp + 0x1348]
shl edx, cl
mov ecx, dword [0x4b5b4c]
fstp dword [esp + 0x10]
mov ebx, dword [ecx + 0xc52c]
or eax, edx
fild dword [esp + 0x18]
xor edx, edx
cmp ebx, 2
sete dl
fstp dword [esp + 0x28]
fild dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x18]
fstp dword [esp + 0x20]
mov edi, dword [esp + 0x20]
push edx
push eax
mov eax, dword [esp + 0x1c]
push eax
push eax
mov eax, dword [esp + 0x40]
push ebx
push edi
push eax
call fcn.00423a50
mov edx, dword [0x4b5b4c]
xor ecx, ecx
fld dword [esp + 0x198]
mov eax, dword [edx + 0xc52c]
cmp eax, 2
mov eax, dword [esp + 0x34]
sete cl
push ecx
push eax
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
xor edx, edx
fmul dword [ebp + 0x1348]
mov ecx, dword [eax]
xor eax, eax
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
fstp dword [esp + 0x38]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
mov eax, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x50]
push eax
push eax
push ebx
push edi
push edx
call fcn.00423a50
add esp, 0x40
xor eax, eax
mov dword [esp + 0x14], eax
shl eax, 6
lea edi, [eax + ebp + 0x31d0]
mov eax, dword [eax + ebp + 0x31d0]
cmp eax, 0xc6fff000
je 0x4476fa
fild dword [ebp + 0x190]
fild dword [ebp + 0x2ec4]
fld st(1)
fmul dword [edi]
fadd st(1)
fadd dword [esp + 0x1c]
fsub dword [ebp + 0x19c]
call fcn.004922ac
fild dword [ebp + 0x2ec8]
mov ebx, eax
fst dword [esp + 0x10]
fadd dword [edi + 0x10]
fadd dword [esp + 0x28]
fsub dword [ebp + 0x1a0]
call fcn.004922ac
fxch st(1)
fmul dword [edi + 0x20]
mov esi, eax
fadd st(1)
fadd dword [esp + 0x1c]
fsub dword [ebp + 0x19c]
call fcn.004922ac
fstp st(0)
fld dword [esp + 0x10]
fadd dword [edi + 0x30]
mov dword [esp + 0x24], eax
fadd dword [esp + 0x28]
fsub dword [ebp + 0x1a0]
call fcn.004922ac
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 4
mov edi, 8
mov dword [esp + 0x10], eax
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edi, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, edi
mov edi, 4
shl edi, cl
or edx, edi
mov edi, dword [esp + 0x24]
push edx
push eax
push edi
push esi
push ebx
call fcn.00489460
mov edx, dword [0x4b5b4c]
add esp, 0x14
mov eax, dword [edx + 0xc52c]
cmp eax, 2
mov eax, dword [esp + 0x14]
jne 0x447692
test eax, eax
jne 0x447657
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov eax, 8
xor edx, edx
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
or eax, edx
mov edx, 8
jmp 0x447676
mov edx, dword [sym.imp.alleg40.dll_Ordinal_36]
xor eax, eax
mov ecx, dword [edx]
mov edx, 0x10
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
or eax, edx
xor edx, edx
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
shl edx, cl
or eax, edx
mov edx, dword [esp + 0x10]
push eax
push edx
push edi
push esi
push ebx
call fcn.00489680
jmp 0x4476f3
test eax, eax
jne 0x4476ba
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov eax, 8
xor edx, edx
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
or eax, edx
mov edx, 8
jmp 0x4476d9
mov edx, dword [sym.imp.alleg40.dll_Ordinal_36]
xor eax, eax
mov ecx, dword [edx]
mov edx, 0x10
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
or eax, edx
xor edx, edx
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
shl edx, cl
or eax, edx
mov edx, dword [esp + 0x10]
push eax
push edx
push edi
push esi
push ebx
call fcn.004893c0
mov esi, dword [esp + 0x34]
add esp, 0x14
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 2
mov dword [esp + 0x14], eax
jl 0x447545
mov edi, dword [esp + 0x18]
push edi
push esi
call fcn.004879c0
lea eax, [esi - 1]
push edi
push eax
call fcn.004879c0
lea ecx, [esi + 1]
push edi
push ecx
call fcn.004879c0
lea eax, [edi - 1]
push eax
push esi
call fcn.004879c0
lea eax, [edi + 1]
push eax
push esi
call fcn.004879c0
mov eax, dword [ebp + 0x190]
add esp, 0x28
cmp eax, 1
mov eax, dword [ebp + 0xe00]
jne 0x44779a
cmp eax, 3
jne 0x447766
mov eax, dword [ebp + 0x8c]
mov ecx, dword [ebp + 0x90]
jmp 0x447772
mov eax, dword [ebp + 0x84]
mov ecx, dword [ebp + 0x88]
mov edx, dword [ebp + 0x1f4]
mov edi, dword [ebp + 0x1f8]
add edx, ecx
add edi, eax
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0x200]
add eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x1fc]
jmp 0x4477df
cmp eax, 3
jne 0x4477ad
mov ecx, dword [ebp + 0x8c]
mov eax, dword [ebp + 0x90]
jmp 0x4477b9
mov ecx, dword [ebp + 0x84]
mov eax, dword [ebp + 0x88]
mov edx, dword [ebp + 0x1f8]
mov edi, dword [ebp + 0x1f4]
add edx, ecx
add edi, eax
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0x1fc]
add eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x200]
fild dword [esp + 0x1c]
add ecx, eax
mov dword [esp + 0x14], ecx
fmul dword [esp + 0x178]
call fcn.004922ac
fild dword [esp + 0x14]
mov dword [esp + 0x1c], eax
fmul dword [esp + 0x178]
call fcn.004922ac
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
add eax, esi
mov ebx, esi
mov dword [esp + 0x20], eax
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
sub ebx, ecx
xor edx, edx
mov ecx, dword [eax]
mov eax, 0x1f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 8
shl eax, cl
or edx, eax
mov eax, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x1c]
push edx
push eax
push ebx
call fcn.004886f0
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
xor edx, edx
mov ecx, dword [eax]
mov eax, 0x1f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 8
shl eax, cl
mov ecx, dword [esp + 0x28]
or edx, eax
lea eax, [ecx + 1]
push edx
push eax
lea eax, [ecx - 1]
push eax
push ebx
call fcn.004889e0
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
xor edx, edx
mov ecx, dword [eax]
mov eax, 0x1f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 8
shl eax, cl
mov ecx, dword [esp + 0x38]
or edx, eax
lea eax, [ecx + 1]
push edx
mov edx, dword [esp + 0x44]
push eax
lea eax, [ecx - 1]
push eax
push edx
call fcn.004889e0
mov eax, dword [esp + 0x4c]
add esp, 0x30
cmp edi, eax
je 0x447930
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
xor eax, eax
mov edx, 0x10
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or eax, edx
mov edx, 0xf
shl edx, cl
mov ecx, dword [esp + 0x18]
or eax, edx
mov edx, esi
push eax
lea eax, [ecx + 1]
push eax
lea eax, [ecx - 1]
sub edx, edi
push eax
push edx
call fcn.004889e0
add esp, 0x10
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
je 0x447985
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
xor edx, edx
mov ecx, dword [eax]
mov eax, 0x10
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0xf
shl eax, cl
mov ecx, dword [esp + 0x18]
or edx, eax
lea eax, [ecx + 1]
push edx
mov edx, dword [esp + 0x14]
push eax
lea eax, [ecx - 1]
add edx, esi
push eax
push edx
call fcn.004889e0
add esp, 0x10
cmp edi, dword [esp + 0x1c]
jle 0x4479cd
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
xor eax, eax
mov edx, 0x10
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or eax, edx
mov edx, 0xf
shl edx, cl
or eax, edx
mov edx, dword [esp + 0x18]
push eax
mov eax, esi
sub eax, edi
push edx
push eax
push ebx
call fcn.004886f0
add esp, 0x10
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jle 0x447a1d
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
xor edx, edx
mov edi, 0x10
add eax, esi
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edi, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, edi
mov edi, 0xf
shl edi, cl
or edx, edi
push edx
mov edx, dword [esp + 0x1c]
push edx
push eax
mov eax, dword [esp + 0x2c]
push eax
call fcn.004886f0
add esp, 0x10
mov ecx, dword [ebp + 4]
lea edx, [ebp + 0x20]
push ecx
push edx
lea eax, [esp + 0x78]
push str._s___i
push eax
call fcn.00492257
mov eax, dword [ebp + 0x1158]
add esp, 0x10
test eax, eax
je 0x447a60
lea edi, [esp + 0x70]
or ecx, 0xffffffff
xor eax, eax
mov dl, byte [0x4aa92a]
repne scasb al, byte es:[edi]
mov cx, word [0x4aa928]
dec edi
mov word [edi], cx
mov byte [edi + 2], dl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov eax, 0x1f
mov edx, 0x3f
add esi, 0xffffffec
mov ecx, dword [ecx]
mov dword [esp + 0x24], esi
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or eax, edx
mov edx, 0x1f
shl edx, cl
or eax, edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [0x4b5b4c]
add edx, 6
mov ecx, dword [eax + 0x5cd4]
push edx
push esi
lea edx, [esp + 0x7c]
push ecx
push edx
call fcn.0041b020
mov eax, dword [ebp + 0x220]
add esp, 0x14
mov ecx, dword [eax + 8]
test ecx, ecx
jle 0x447bff
mov ecx, dword [str.Target]
mov edx, dword [0x4aa930]
push eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
call fcn.00409240
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x447bc3
mov eax, dword [ebx]
test eax, eax
je 0x447b46
mov ecx, dword [eax + 0x158]
test ecx, ecx
je 0x447b46
mov eax, dword [eax + 4]
lea ecx, [esp + 0x30]
push eax
push 0x4aa934
push ecx
call fcn.00492257
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x70]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x30]
push eax
push 0x4aa938
push ecx
call fcn.00492257
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x7c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x220]
mov ecx, ebx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.004092b0
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x447bbf
lea edi, [esp + 0x70]
or ecx, 0xffffffff
xor eax, eax
mov dl, byte [0x4aa93e]
repne scasb al, byte es:[edi]
mov cx, word [0x4aa93c]
dec edi
mov word [edi], cx
mov byte [edi + 2], dl
jmp 0x447af3
mov esi, dword [esp + 0x24]
push 0xff
push 0xc0
push 0xff
call dword [sym.imp.alleg40.dll_Ordinal_412]
mov ecx, dword [0x4b5b4c]
push eax
mov eax, dword [esp + 0x28]
mov edx, dword [ecx + 0x5cd4]
add eax, 0xc
push eax
push esi
lea eax, [esp + 0x88]
push edx
push eax
call fcn.0041b020
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x160
ret