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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
push ebx
push esi
push edi
lea edi, [eax + 0x2c]
mov esi, 0x54ee10
mov dword [ebp - 8], edi
call fcn.00425090
test eax, eax
je 0x512428
mov eax, dword [eax + 0x18]
add eax, 8
jmp 0x51242a
xor eax, eax
lea edi, [ebp - 0x14]
call fcn.004f73e0
mov ecx, dword [eax]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp - 8]
mov dword [ebx + 0x14], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 0x18], edx
mov eax, dword [eax + 8]
mov esi, str.anchor
mov dword [ebx + 0x1c], eax
call fcn.00425090
test eax, eax
je 0x51245f
mov eax, dword [eax + 0x18]
add eax, 8
jmp 0x512461
xor eax, eax
lea edi, [ebp - 0x74]
call fcn.004f73e0
mov ecx, dword [eax]
mov edi, dword [ebp - 8]
mov dword [ebx + 0x20], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 0x24], edx
mov eax, dword [eax + 8]
mov esi, str.transitionMove
mov dword [ebx + 0x28], eax
call fcn.00425090
test eax, eax
je 0x512493
mov eax, dword [eax + 0x18]
add eax, 8
jmp 0x512495
xor eax, eax
lea edi, [ebp - 0x8c]
call fcn.004f73e0
mov ecx, dword [eax]
mov edi, dword [ebp - 8]
mov dword [ebx + 0x48], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 0x4c], edx
mov ecx, dword [eax + 8]
mov dword [ebx + 0x50], ecx
mov edx, dword [eax]
mov dword [ebx + 0x54], edx
mov ecx, dword [eax + 4]
mov dword [ebx + 0x58], ecx
mov edx, dword [eax + 8]
mov esi, str.transitionMoveIn
mov dword [ebx + 0x5c], edx
call fcn.00425090
test eax, eax
je 0x5124f9
mov eax, dword [eax + 0x18]
add eax, 8
je 0x5124f9
cmp byte [eax], 0
je 0x5124f9
lea edi, [ebp - 0x68]
call fcn.004f73e0
mov ecx, dword [eax]
mov dword [ebx + 0x48], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 0x4c], edx
mov eax, dword [eax + 8]
mov dword [ebx + 0x50], eax
mov edi, dword [ebp - 8]
mov esi, str.transitionMoveOut
call fcn.00425090
test eax, eax
je 0x512530
mov eax, dword [eax + 0x18]
add eax, 8
je 0x512530
cmp byte [eax], 0
je 0x512530
lea edi, [ebp - 0x80]
call fcn.004f73e0
mov ecx, dword [eax]
mov dword [ebx + 0x54], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 0x58], edx
mov eax, dword [eax + 8]
mov dword [ebx + 0x5c], eax
mov edi, dword [ebp - 8]
mov esi, 0x54ee54
call fcn.00425090
test eax, eax
je 0x512549
mov eax, dword [eax + 0x18]
add eax, 8
jmp 0x51254b
xor eax, eax
push eax
mov esi, ebx
call fcn.004f74e0
mov ecx, dword [ebx]
test ecx, ecx
jne 0x512560
mov edi, ebx
call fcn.004f76a0
mov edx, dword [ebx]
test edx, edx
je 0x5125c4
mov eax, dword [ebx]
test eax, eax
jne 0x512573
mov edi, ebx
call fcn.004f76a0
mov eax, dword [ebx]
mov ecx, dword [ebx]
mov esi, dword [eax + 0x30]
test ecx, ecx
jne 0x512585
mov edi, ebx
call fcn.004f76a0
mov eax, dword [ebx]
mov edx, dword [eax + 0x2c]
fild dword [eax + 0x2c]
test edx, edx
jns 0x512597
fadd dword [0x554b74]
mov dword [ebp - 0x18], esi
fstp dword [ebp - 0x14]
fild dword [ebp - 0x18]
test esi, esi
jns 0x5125aa
fadd dword [0x554b74]
mov eax, dword [ebp - 0x14]
fstp dword [ebp - 0x10]
fldz
mov ecx, dword [ebp - 0x10]
fstp dword [ebp - 0xc]
mov dword [ebx + 0x68], eax
mov edx, dword [ebp - 0xc]
mov dword [ebx + 0x6c], ecx
mov dword [ebx + 0x70], edx
mov edi, dword [ebp - 8]
mov esi, 0x54ee5c
call fcn.00425090
test eax, eax
je 0x5125fe
mov eax, dword [eax + 0x18]
add eax, 8
je 0x5125fe
cmp byte [eax], 0
je 0x5125fe
lea edi, [ebp - 0x98]
call fcn.004f73e0
mov ecx, dword [eax]
mov dword [ebx + 0x68], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 0x6c], edx
mov eax, dword [eax + 8]
mov dword [ebx + 0x70], eax
fld dword [ebx + 0x68]
mov edi, dword [ebp - 8]
fld qword [0x554b90]
mov esi, str.slowHardwareScale
fmul st(1), st(0)
fxch st(1)
fstp dword [ebx + 0x68]
fld dword [ebx + 0x6c]
fmul st(1)
fstp dword [ebx + 0x6c]
fmul dword [ebx + 0x70]
fstp dword [ebx + 0x70]
call fcn.00425090
test eax, eax
je 0x512646
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x5c]
push ecx
add eax, 8
push 0x5537ac
push eax
call dword [sym.imp.MSVCR100.dll_sscanf_s]
add esp, 0xc
mov esi, str.pulseSpeed
call fcn.00425090
test eax, eax
je 0x512678
mov eax, dword [eax + 0x18]
lea edx, [ebp - 0x34]
push edx
add eax, 8
push 0x5537ac
push eax
call dword [sym.imp.MSVCR100.dll_sscanf_s]
add esp, 0xc
cmp eax, 1
jne 0x512678
fld qword [ebp - 0x34]
fstp dword [ebx + 0x34]
mov esi, str.pulseScale
call fcn.00425090
test eax, eax
je 0x5126aa
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x4c]
push ecx
add eax, 8
push 0x5537ac
push eax
call dword [sym.imp.MSVCR100.dll_sscanf_s]
add esp, 0xc
cmp eax, 1
jne 0x5126aa
fld qword [ebp - 0x4c]
fstp dword [ebx + 0x38]
fld dword [ebx + 0x38]
mov esi, str.pulseScalePositive
fstp dword [ebx + 0x3c]
call fcn.00425090
test eax, eax
je 0x5126e2
mov eax, dword [eax + 0x18]
lea edx, [ebp - 0x54]
push edx
add eax, 8
push 0x5537ac
push eax
call dword [sym.imp.MSVCR100.dll_sscanf_s]
add esp, 0xc
cmp eax, 1
jne 0x5126e2
fld qword [ebp - 0x54]
fstp dword [ebx + 0x38]
mov esi, str.pulseScaleNegative
call fcn.00425090
test eax, eax
je 0x512714
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x3c]
push ecx
add eax, 8
push 0x5537ac
push eax
call dword [sym.imp.MSVCR100.dll_sscanf_s]
add esp, 0xc
cmp eax, 1
jne 0x512714
fld qword [ebp - 0x3c]
fstp dword [ebx + 0x3c]
mov esi, 0x54eeb8
call fcn.00425090
test eax, eax
je 0x512746
mov eax, dword [eax + 0x18]
lea edx, [ebp - 0x2c]
push edx
add eax, 8
push 0x5537ac
push eax
call dword [sym.imp.MSVCR100.dll_sscanf_s]
add esp, 0xc
cmp eax, 1
jne 0x512746
fld qword [ebp - 0x2c]
fstp dword [ebx + 0x44]
mov esi, 0x54eec8
call fcn.00425090
test eax, eax
je 0x512778
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x24]
push ecx
add eax, 8
push 0x5537ac
push eax
call dword [sym.imp.MSVCR100.dll_sscanf_s]
add esp, 0xc
cmp eax, 1
jne 0x512778
fld qword [ebp - 0x24]
fstp dword [ebx + 0x60]
mov esi, 0x54eed4
call fcn.00425090
test eax, eax
je 0x5127aa
mov eax, dword [eax + 0x18]
lea edx, [ebp - 0x44]
push edx
add eax, 8
push 0x5537ac
push eax
call dword [sym.imp.MSVCR100.dll_sscanf_s]
add esp, 0xc
cmp eax, 1
jne 0x5127aa
fld qword [ebp - 0x44]
fstp dword [ebx + 0x64]
mov esi, 0x54eedc
call fcn.00425090
test eax, eax
je 0x5127c0
mov ecx, dword [eax + 0x18]
add ecx, 8
jmp 0x5127c2
xor ecx, ecx
add ebx, 0x74
push ebx
call fcn.004f7340
add esp, 4
test byte [0x5fce18], 1
jne 0x5127fc
or dword [0x5fce18], 1
mov ecx, str.scale
call fcn.00419140
mov ecx, str.fade
mov dword [0x5bcb54], eax
call fcn.00419140
mov dword [0x5bcb58], eax
mov esi, str.transition
call fcn.00425090
test eax, eax
je 0x512812
mov eax, dword [eax + 0x18]
add eax, 8
jmp 0x512814
xor eax, eax
mov ebx, 0x5bcb54
call fcn.004f71d0
mov ebx, dword [0x5fce18]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x78], eax
test bl, 2
jne 0x512904
or ebx, 2
mov ecx, 0x54ef54
mov dword [0x5fce18], ebx
call fcn.00419140
mov ecx, str.normal
mov dword [0x5bcb60], eax
mov dword [0x5bcb64], 0
call fcn.00419140
mov ecx, str.post
mov dword [0x5bcb68], eax
mov dword [0x5bcb6c], 1
call fcn.00419140
mov ecx, str.before_splats
mov dword [0x5bcb70], eax
mov dword [0x5bcb74], 8
call fcn.00419140
mov ecx, str.after_splats
mov dword [0x5bcb78], eax
mov dword [0x5bcb7c], 0x40
call fcn.00419140
mov ecx, str.before_bomb
mov dword [0x5bcb80], eax
mov dword [0x5bcb84], 0x80
call fcn.00419140
mov ecx, str.after_bomb
mov dword [0x5bcb88], eax
mov dword [0x5bcb8c], 0x100
call fcn.00419140
mov ecx, str.top_most
mov dword [0x5bcb90], eax
mov dword [0x5bcb94], 0x200
call fcn.00419140
mov dword [0x5bcb98], eax
mov dword [0x5bcb9c], 0x400
mov esi, 0x54ef5c
call fcn.00425090
test eax, eax
je 0x51291a
mov eax, dword [eax + 0x18]
add eax, 8
jne 0x512926
mov edx, dword [ebp + 8]
mov dword [edx + 0x2c], 1
jmp 0x512970
mov esi, str.drawOrder
call fcn.00425090
test eax, eax
je 0x51295f
mov ecx, dword [eax + 0x18]
add ecx, 8
je 0x51295f
cmp byte [ecx], 0
je 0x51295f
call fcn.00419140
xor ecx, ecx
jmp 0x512950
cmp dword [ecx*4 + 0x5bcb60], eax
je 0x512961
inc ecx
cmp ecx, 0x10
jb 0x512950
xor ecx, ecx
shr ecx, 1
mov eax, dword [ecx*8 + 0x5bcb64]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x2c], eax
mov esi, 0x54ef7c
call fcn.00425090
test eax, eax
je 0x5129c1
mov eax, dword [eax + 0x18]
add eax, 8
je 0x5129c1
cmp byte [eax], 0
je 0x5129c1
mov ecx, 0x54ef74
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5129b5
test dl, dl
je 0x5129ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5129b5
add eax, 2
add ecx, 2
test dl, dl
jne 0x512990
xor eax, eax
test eax, eax
sete al
jmp 0x5129c3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
jmp 0x5129c3
xor al, al
mov ecx, dword [ebp + 8]
xor edx, edx
test al, al
setne dl
mov eax, edx
mov dword [ecx + 0x10], eax
test eax, eax
jne 0x512a67
mov esi, 0x54ef88
call fcn.00425090
test eax, eax
je 0x512a67
mov eax, dword [eax + 0x18]
add eax, 8
je 0x512a67
test bl, 4
jne 0x512a2b
or ebx, 4
mov ecx, 0x54efa0
mov dword [0x5fce18], ebx
call fcn.00419140
mov ecx, 0x54ef98
mov dword [0x5bcba0], eax
call fcn.00419140
mov ecx, 0x54ef90
mov dword [0x5bcba4], eax
call fcn.00419140
mov dword [0x5bcba8], eax
mov esi, str.defer
call fcn.00425090
test eax, eax
je 0x512a5f
mov ecx, dword [eax + 0x18]
add ecx, 8
je 0x512a5f
cmp byte [ecx], 0
je 0x512a5f
call fcn.00419140
xor ecx, ecx
lea ecx, [ecx]
cmp dword [ecx*4 + 0x5bcba0], eax
je 0x512a61
inc ecx
cmp ecx, 3
jb 0x512a50
xor ecx, ecx
mov edx, dword [ebp + 8]
mov dword [edx + 0x10], ecx
mov esi, str.scaleToScreen
call fcn.00425090
test eax, eax
je 0x512ad2
mov eax, dword [eax + 0x18]
add eax, 8
je 0x512ad2
cmp byte [eax], 0
je 0x512ad2
mov ecx, 0x54efb0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x512ab9
test dl, dl
je 0x512aa3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x512ab9
add eax, 2
add ecx, 2
test dl, dl
jne 0x512a87
mov ecx, dword [ebp + 8]
xor eax, eax
test eax, eax
sete al
mov byte [ecx + 0x7c], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp + 8]
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
mov byte [ecx + 0x7c], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebp + 8]
pop edi
xor al, al
pop esi
mov byte [edx + 0x7c], al
pop ebx
mov esp, ebp
pop ebp
ret 4