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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x64f4e0
push eax
mov dword fs:[0], esp
sub esp, 0x64
push ebx
push ebp
mov ebp, dword [esp + 0x7c]
mov eax, dword [ebp]
cmp byte [eax + 0x8c5], 0
push esi
push edi
jne 0x420f6e
fldz
mov ecx, dword [0x6a9f00]
mov esi, dword [eax + 0x784]
fst dword [esp + 0x84]
fcomp dword [ecx + 0x310]
fnstsw ax
test ah, 0x44
jnp 0x420f57
fld dword [ecx + 0x310]
push ecx
fstp dword [esp]
call fcn.005af410
fstp dword [esp + 0x88]
add esp, 4
fld dword [esp + 0x84]
push ecx
mov eax, 0xf
fstp dword [esp]
mov ecx, esi
call fcn.00515020
mov ebx, dword [ebp + 4]
mov eax, dword [ebx + 0x8c]
cmp dword [eax + 0x7f8], 0x2b
jne 0x420fb0
mov ecx, dword [ebx + 0x554c]
cmp ecx, 6
je 0x420f95
cmp ecx, 8
je 0x420f95
cmp ecx, 7
jne 0x420fb0
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov eax, dword [eax + 0x81c]
call fcn.00521450
jmp 0x420fc0
mov eax, dword [esp + 0x88]
lea eax, [eax + eax*4]
shl eax, 4
add eax, 0x28
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
mov eax, dword [esp + 0x8c]
fstp dword [esp + 0x14]
call fcn.0041c740
cmp byte [esp + 0x94], 0
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
mov eax, dword [esp + 0x90]
fstp dword [esp + 0x84]
je 0x42103d
cmp eax, 3
fld dword [esp + 0x14]
jne 0x421020
fadd qword [0x679820]
fstp dword [esp + 0x14]
jmp 0x42106b
cmp eax, 4
jne 0x421031
fadd qword [0x679490]
fstp dword [esp + 0x14]
jmp 0x42106b
fadd qword [0x67a240]
fstp dword [esp + 0x14]
jmp 0x42106b
cmp eax, 3
fld dword [esp + 0x84]
jne 0x421051
fadd qword [0x679820]
jmp 0x421064
cmp eax, 4
jne 0x42105e
fadd qword [0x679490]
jmp 0x421064
fadd qword [0x67a240]
fstp dword [esp + 0x84]
mov edi, 1
add dword [ebp + 0x60], edi
mov eax, dword [ebx + 0x144]
cmp dword [eax + 0x24], 0
jne 0x4211b2
or edx, 0xffffffff
lea esi, [eax + 0x28]
lea edi, [edx + 8]
call fcn.00489b50
mov ecx, dword [ebp + 4]
mov esi, dword [ecx + 0x144]
add esi, 0x78
or edx, edx
mov edi, 0xa
call fcn.00489b50
mov edx, dword [ebp + 4]
mov esi, dword [edx + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 0x18]
call fcn.00489b50
mov eax, dword [ebp + 4]
mov esi, dword [eax + 0x144]
add esi, 0x118
or edx, edx
mov edi, 0x36
call fcn.00489b50
mov ecx, dword [ebp + 4]
mov edx, dword [ecx + 0x144]
push 0x1b
xor ebx, ebx
push str._ADVICE_BEGHOULED_SAVE_SUN_
lea ecx, [esp + 0x24]
mov dword [edx + 0x24], 4
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.00404330
mov dword [esp + 0x7c], ebx
mov edi, dword [ebp + 4]
cmp byte [edi + 0x55bc], bl
jne 0x421142
mov esi, dword [edi + 0x140]
lea ecx, [ebx + 7]
lea edx, [esp + 0x1c]
mov byte [edi + 0x55bc], 1
call fcn.00459010
mov dword [edi + 0x55ec], 0x14
mov dword [esp + 0x7c], 0xffffffff
cmp dword [esp + 0x34], 0x10
jb 0x42115e
mov eax, dword [esp + 0x20]
push eax
call fcn.0061c19a
add esp, 4
xor edx, edx
lea ecx, [ebp + 0x14]
xor eax, eax
cmp byte [ecx + eax], 0
jne 0x421183
add eax, 1
cmp eax, 5
jl 0x421165
add edx, 1
add ecx, 6
cmp edx, 9
jl 0x421163
jmp 0x42131c
mov ecx, dword [ebp + 4]
mov esi, dword [ecx + 0x144]
or edx, 0xffffffff
add esi, 0x168
lea edi, [edx + 0x38]
call fcn.00489b50
mov edx, dword [ebp + 4]
mov eax, dword [edx + 0x144]
mov dword [eax + 0x24], 5
jmp 0x42131c
mov ecx, dword [ebx + 0x140]
cmp dword [ecx + 0x88], 0
mov ebx, 0x10
jne 0x421284
push 0x1a
mov esi, 0xf
push str._ADVICE_BEGHOULED_MATCH_3_
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
call fcn.00404330
lea edx, [esp + 0x54]
push 0x64
push edx
mov ecx, str.SCORE
lea edx, [esp + 0x24]
mov dword [esp + 0x84], edi
call fcn.00513720
add esp, 8
mov byte [esp + 0x7c], 3
cmp dword [esp + 0x34], ebx
jb 0x421227
mov eax, dword [esp + 0x20]
push eax
call fcn.0061c19a
add esp, 4
mov edi, dword [ebp + 4]
cmp byte [edi + 0x55ba], 0
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
jne 0x421269
mov esi, dword [edi + 0x140]
mov ecx, 7
lea edx, [esp + 0x54]
mov byte [edi + 0x55ba], 1
call fcn.00459010
mov dword [edi + 0x55ec], 0x12
mov dword [esp + 0x7c], 0xffffffff
cmp dword [esp + 0x6c], ebx
jb 0x421284
mov ecx, dword [esp + 0x58]
push ecx
call fcn.0061c19a
add esp, 4
cmp dword [ebp + 0x60], 0x5f
jl 0x42131c
push 0x1f
push str._ADVICE_BEGHOULED_ALMOST_THERE_
lea ecx, [esp + 0x40]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], 0
mov byte [esp + 0x44], 0
call fcn.00404330
mov dword [esp + 0x7c], 4
mov edi, dword [ebp + 4]
cmp byte [edi + 0x55d7], 0
jne 0x4212ec
mov esi, dword [edi + 0x140]
mov ecx, 7
lea edx, [esp + 0x38]
mov byte [edi + 0x55d7], 1
call fcn.00459010
mov dword [edi + 0x55ec], 0x2f
mov dword [esp + 0x7c], 0xffffffff
cmp dword [esp + 0x50], ebx
jb 0x421307
mov edx, dword [esp + 0x3c]
push edx
call fcn.0061c19a
add esp, 4
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], 0
mov byte [esp + 0x3c], 0
mov eax, 0x64
cmp dword [ebp + 0x60], eax
jl 0x42138c
mov ecx, dword [esp + 0x88]
mov dword [ebp + 0x60], eax
mov eax, dword [esp + 0x8c]
push ebp
call fcn.00424a40
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + 0x140]
or edi, 0xffffffff
cmp dword [eax + 0x290], edi
je 0x421377
mov edx, dword [eax + 0x294]
mov esi, dword [eax + 0x88]
add edx, 0x65
cmp esi, edx
jge 0x421366
mov edx, esi
mov dword [eax + 0x88], edx
mov dword [ecx + 0x55ec], edi
jmp 0x421413
mov dword [eax + 0x88], 0
mov dword [ecx + 0x55ec], edi
jmp 0x421413
mov ecx, dword [esp + 0x90]
cmp ecx, 5
mov eax, dword [ebp + 0x50]
lea edi, [eax + ecx - 2]
jl 0x4213a2
add edi, 2
cmp edi, 1
jg 0x4213ae
mov edi, 1
jmp 0x4213b8
cmp edi, 5
jl 0x4213b8
mov edi, 5
xor esi, esi
test edi, edi
mov dword [esp + 0x94], esi
jle 0x421413
fld dword [esp + 0x84]
call fcn.006397d0
fld dword [esp + 0x14]
fsub qword [0x679358]
mov ebx, eax
fstp qword [esp + 0x14]
fild dword [esp + 0x94]
push 3
push 4
push ebx
fmul qword [0x679338]
fadd qword [esp + 0x20]
call fcn.006397d0
mov ecx, dword [ebp + 4]
push eax
call fcn.0040cb10
add esi, 1
cmp esi, edi
mov dword [esp + 0x94], esi
jl 0x4213e1
add dword [ebp + 0x50], 1
mov ecx, dword [esp + 0x74]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x70
ret 0x14