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

Disassembly:
push ebp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x24c
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x26c]
fld qword [esp + 0x260]
mov dword [esp + 0x44], edx
mov byte [esp + 0xac], al
mov eax, dword [esp + 0x270]
mov dword [esp + 0x40], ecx
mov byte [esp + 0xa8], al
mov eax, dword [esp + 0x274]
mov byte [esp + 0xb7], 0
mov byte [esp + 0xa4], al
mov eax, dword [esp + 0x278]
fst qword [esp + 0x58]
mov byte [esp + 0xa0], al
xor eax, eax
test esi, esi
setne al
mov dword [esp + 0x54], eax
je 0x418d36
fstp st(0)
mov eax, dword [esp + 0x268]
cmp dword [eax], 1
je 0x418278
mov eax, dword [esp + 0x38]
fldz
fld qword [esp + 0x58]
mov eax, dword [eax]
fucompi st(1)
fstp st(0)
mov dword [esp + 0x48], eax
jp 0x4182cd
jne 0x4182cd
mov dword [esp + 0x8c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x88], 0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x4c], 0
xor ebp, ebp
mov dword [esp + 0x28], 0
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x60], 0
sub eax, 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x6c], eax
jmp 0x4181f9
mov edx, dword [esp + 0x38]
lea eax, [ebp + 1]
test edx, edx
je 0x4183f0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x20], 0
xor ebx, ebx
mov dword [esp + 0x3c], ebp
mov ebp, eax
mov edx, ecx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4181b0
mov eax, edi
cmp al, 0x2c
je 0x4183d8
mov eax, dword [esp + 0x4c]
or eax, dword [esp + 0x54]
mov dword [esp + 0x28], eax
jne 0x4183c0
mov eax, dword [esp + 0x268]
mov dword [esp + 0x4c], 0
mov dword [eax + 8], 1
nop
test edx, edx
je 0x4181ef
test ebx, ebx
cmovne esi, ebx
test ecx, ecx
jne 0x4181c7
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov ecx, eax
mov edi, dword [esp + 0x48]
push ecx
push esi
push edi
push ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop ecx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ecx
add edi, ecx
mov dword [esp + 0x48], edi
test ebx, ebx
je 0x4181ef
mov dword [esp], ebx
call sub.msvcrt.dll_free
cmp dword [esp + 0x40], ebp
je 0x418690
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
lea esi, [eax + ebp]
movzx edi, byte [esi]
test ecx, ecx
jne 0x418150
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x418378
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x268]
test ecx, ecx
je 0x418510
mov ebx, dword [eax + 0x14]
mov ecx, dword [esp + 0x34]
lea eax, [ebp + 1]
mov dword [esp + 0x60], ebx
test ebx, ebx
jne 0x4184d0
mov edx, dword [esp + 0x68]
mov dword [esp + 0x3c], ebp
mov ebp, eax
test edx, edx
js 0x4185f8
mov eax, dword [esp + 0x60]
mov dword [esp + 0x64], ecx
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], eax
jmp 0x418175
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x41828d
fld qword [esp + 0x58]
fmul dword [0x424a28]
fstp qword [esp + 0x58]
mov eax, dword [esp + 0x268]
fild dword [eax + 0x28]
fstp qword [esp + 8]
fld dword [0x424a2c]
fstp qword [esp]
call fcn.0041fb70
fld qword [esp + 0x58]
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
fdivrp st(1)
mov dword [esp + 0x48], eax
fst qword [esp + 0x58]
fldz
fxch st(1)
fucompi st(1)
fstp st(0)
jp 0x4182cd
je 0x418782
fld qword [esp + 0x58]
fabs
fstp qword [esp]
call sub.msvcrt.dll_log10
fnstcw word [esp + 0xa2]
movzx eax, word [esp + 0xa2]
and ah, 0xf3
or ah, 4
mov word [esp + 0xa6], ax
movzx eax, word [esp + 0xa2]
fldcw word [esp + 0xa6]
frndint
fldcw word [esp + 0xa2]
or ah, 0xc
mov word [esp + 0xaa], ax
fldcw word [esp + 0xaa]
fistp dword [esp + 0x20]
fldcw word [esp + 0xa2]
mov eax, dword [esp + 0x20]
lea esi, [eax + 1]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x268]
cmp dword [esi], 1
je 0x4190cd
mov dword [esp + 0x8c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x88], 0
jmp 0x4180c4
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x418420
mov edx, edi
lea eax, [ebp + 1]
cmp dl, 0x22
je 0x4185d0
mov edx, dword [esp + 0x38]
test edx, edx
je 0x418660
mov dword [esp + 0x3c], ebp
mov edx, dword [esp + 0x50]
mov ebp, eax
xor ebx, ebx
mov eax, dword [esp + 0x34]
mov ecx, edx
mov dword [esp + 0x20], eax
jmp 0x418175
mov dword [esp + 0x4c], 0
mov dword [esp + 0x28], 0
jmp 0x4181b0
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x6c], edi
jne 0x4181b0
jmp 0x418187
mov edx, dword [esp + 0x268]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], ebp
xor ebx, ebx
mov dword [esp + 0x20], 0
mov ebp, eax
add dword [edx + 0x34], 1
xor edx, edx
jmp 0x418175
mov eax, dword [esp + 0x38]
test eax, eax
je 0x418442
lea ecx, [edi - 0x23]
cmp cl, 0xd
ja 0x418442
mov eax, 1
shl eax, cl
test eax, 0x2801
jne 0x418563
lea eax, [edi - 0x23]
cmp al, 0x56
ja case.0x41844c.1
movzx eax, al
jmp dword [eax*4 + 0x424704]
mov eax, dword [esp + 0x268]
mov ecx, dword [eax]
test ecx, ecx
jne case.0x41844c.1
mov dword [eax], 1
lea eax, [edi - 9]
cmp al, 0x70
ja case.0x418470.1
movzx eax, al
jmp dword [eax*4 + 0x424860]
mov eax, dword [esp + 0x268]
mov edx, dword [eax]
test edx, edx
jne case.0x41844c.1
mov dword [eax], 2
lea eax, [edi - 9]
cmp al, 0x70
jbe 0x41846d
lea esi, [esi]
mov edx, dword [esp + 0x38]
lea eax, [ebp + 1]
test edx, edx
je 0x418f26
mov dword [esp + 0x3c], ebp
mov ebp, eax
mov dword [esp + 0x34], 0
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x20], 0
mov edx, 1
jmp 0x418175
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x3c], ebp
mov edx, ecx
mov ebp, eax
mov dword [esp + 0x60], 0
test ebx, ebx
mov dword [esp + 0x64], ecx
mov ebx, 0
mov dword [esp + 0x34], 0
js 0x418778
mov esi, 0x4246eb
jmp 0x418175
mov dword [eax + 0x10], 1
mov eax, edi
cmp al, 0x2b
je 0x418640
cmp al, 0x2d
jne 0x418618
mov eax, dword [esp + 0x268]
add dword [eax + 0x38], 1
mov dword [eax + 0x14], 0
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x3c], ebp
xor ebx, ebx
add ebp, 1
mov dword [esp + 0x60], 0
xor edx, edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x34], 0
jmp 0x418175
mov eax, dword [esp + 0x268]
mov edx, dword [esp + 0x70]
or edx, dword [eax + 0x18]
jne 0x4186d0
mov eax, dword [eax + 0x1c]
lea esi, [ebp - 1]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x20], eax
test eax, eax
jne 0x418597
cmp byte [esp + 0xb7], 0x2d
jne 0x41898e
mov dword [esp + 0x70], 1
mov ecx, 1
lea esi, [esp + 0xb7]
mov dword [esp + 0x34], 0
xor ebx, ebx
mov edx, 1
mov dword [esp + 0x20], 0
jmp 0x418175
mov dword [esp + 0x3c], ebp
mov ebp, eax
mov eax, dword [esp + 0x34]
xor edx, edx
mov ecx, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x50], 0
mov dword [esp + 0x20], eax
jmp 0x418175
mov dword [esp + 0x64], ecx
mov edx, ecx
mov esi, 0x4246e3
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], ebx
jmp 0x418175
mov dword [esp], 1
call fcn.00413710
sub esp, 4
mov eax, dword [esp + 0x20]
add esp, 0x24c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x268]
add dword [eax + 0x34], 1
mov dword [eax + 0x14], 1
jmp 0x41853b
mov edx, dword [esp + 0x268]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x3c], ebp
mov ebp, eax
mov eax, dword [esp + 0x38]
xor ebx, ebx
add dword [edx + 0x34], 1
xor edx, edx
mov dword [esp + 0x20], eax
jmp 0x418175
mov edi, dword [esp + 0x38]
test edi, edi
je 0x418d86
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x20], 1
mov byte [eax], 0
mov edx, dword [esi + 4]
sub eax, dword [esi]
and edx, 0x80000000
or eax, edx
mov dword [esi + 4], eax
mov eax, dword [esp + 0x20]
add esp, 0x24c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x78]
test ebx, ebx
jns 0x418442
mov edx, dword [esp + 0x268]
mov eax, dword [esp + 0x80]
lea ebx, [ebp - 1]
mov dword [esp + 0x3c], ebx
mov ecx, dword [edx + 8]
lea esi, [esp + eax + 0xc0]
test ecx, ecx
je 0x418a29
mov ebx, dword [esp + 0xb8]
mov edx, 0x55555556
sub ebx, eax
mov eax, ebx
mov ecx, ebx
imul edx
sar ecx, 0x1f
sub edx, ecx
lea eax, [edx + edx*2]
sub ebx, eax
mov eax, dword [esp + 0x80]
mov ecx, ebx
cmp dword [esp + 0xb8], eax
je 0x418a2f
test ebx, ebx
jne 0x418a2f
mov edx, dword [esp + 0x84]
test edx, edx
jne 0x4194cc
mov ecx, 1
test eax, eax
jle 0x418a3e
mov dword [esp + 0x84], 1
lea esi, [esp + 0xac]
jmp 0x4185ab
mov esi, 0x4246e3
jmp 0x418175
mov eax, dword [esp + 0x268]
cmp dword [eax], 1
jne 0x418096
mov eax, dword [eax + 0x10]
mov dword [esp + 0x88], eax
test eax, eax
je 0x418f06
mov dword [esp + 0x68], 0
fld dword [0x424a38]
fld qword [esp + 0x58]
mov eax, dword [esp + 0x68]
fcompi st(1)
fstp st(0)
jb 0x4187e3
fld qword [esp + 0x58]
fdiv dword [0x424a2c]
add eax, 1
fst qword [esp + 0x58]
fld dword [0x424a38]
fxch st(1)
fcompi st(1)
fstp st(0)
jae 0x4187c0
mov dword [esp + 0x68], eax
mov esi, dword [esp + 0x68]
lea eax, [esp + 0x1c0]
mov dword [esp + 4], 0x4246ed
mov dword [esp], eax
mov dword [esp + 8], esi
shr esi, 0x1f
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x74], esi
mov dword [esp + 0x88], eax
sub eax, esi
mov esi, dword [esp + 0x268]
mov esi, dword [esi + 0x2c]
mov dword [esp + 0x20], esi
sub esi, eax
mov dword [esp + 0x8c], esi
fld qword [esp + 0x58]
lea ebx, [esp + 0xc0]
mov dword [esp + 8], ebx
fstp qword [esp]
call fcn.0041f900
mov eax, dword [esp + 0x268]
fld st(0)
mov eax, dword [eax + 0x24]
fstp qword [esp + 0x140]
test eax, eax
jne 0x418e25
fnstcw word [esp + 0xa2]
fmul qword [0x424a40]
mov ecx, 0x52634000
movzx eax, word [esp + 0xa2]
or ah, 0xc
mov word [esp + 0xaa], ax
fldcw word [esp + 0xaa]
fistp qword [esp + 0x20]
fldcw word [esp + 0xa2]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
cmp ecx, eax
mov ecx, 0x1c6bf
sbb ecx, edx
jge 0x418fff
movzx eax, word [esp + 0xa2]
fld qword [esp + 0x58]
lea esi, [esp + 0x140]
and ah, 0xf3
or ah, 8
mov word [esp + 0xae], ax
fldcw word [esp + 0xae]
frndint
fldcw word [esp + 0xa2]
fstp qword [esp + 0x58]
jmp 0x4188e2
fstp st(0)
mov eax, dword [esp + 0x268]
mov ebp, dword [eax + 0x10]
test ebp, ebp
jne 0x418f36
mov eax, dword [esp + 0x268]
fld qword [esp + 0x58]
mov ecx, esi
lea edx, [esp + 0xb8]
mov eax, dword [eax + 0x24]
fstp qword [esp]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xb7]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xbc]
mov dword [esp + 8], eax
mov eax, ebx
call fcn.00417ad0
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0xb8]
test edi, edi
jle 0x418975
mov esi, dword [esp + 0x268]
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x418975
mov esi, dword [esp + 0x68]
add ebx, eax
lea edx, [ebx + esi]
lea esi, [esi]
mov byte [ebx], 0x30
add ebx, 1
cmp ebx, edx
jne 0x418958
add eax, dword [esp + 0x68]
mov dword [esp + 0xb8], eax
mov byte [esp + eax + 0xc0], 0
mov esi, dword [esp + 0x268]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x20], esi
sub esi, eax
mov dword [esp + 0x78], esi
jmp 0x4180c4
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x70], 1
jmp 0x4181ef
lea eax, [ebp + 1]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x268]
cmp dword [eax], 2
je 0x4194d6
mov ebx, dword [esp + 0x38]
lea eax, [ebp + 1]
test ebx, ebx
jne 0x4184a7
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 1
lea eax, [ebp + 1]
jmp 0x418a07
mov eax, dword [esp + 0x268]
cmp dword [eax], 2
je 0x4191e6
mov ecx, dword [esp + 0x38]
lea eax, [ebp + 1]
test ecx, ecx
jne 0x4184a7
mov edx, dword [esp + 0x268]
add dword [edx + 0x34], 1
xor ebx, ebx
mov dword [esp + 0x3c], ebp
xor edx, edx
mov ebp, eax
mov ecx, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
mov ecx, dword [esp + 0x78]
neg ecx
mov ebx, dword [esp + 0x84]
test ebx, ebx
jne 0x4185ab
add dword [esp + 0x80], ecx
add dword [esp + 0x78], ecx
mov dword [esp + 0x84], 0
jmp 0x4185ab
mov eax, dword [esp + 0x268]
cmp dword [eax], 1
jne case.0x418470.1
mov ecx, dword [esp + 0x64]
test ecx, ecx
jne 0x419a95
mov edx, dword [esp + 0x38]
lea eax, [ebp + 1]
test edx, edx
je 0x41973a
mov dword [esp + 0x3c], ebp
mov ecx, 1
mov ebp, eax
xor ebx, ebx
mov dword [esp + 0x50], 0
mov edx, 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x34], 1
jmp 0x418175
mov ebx, dword [esp + 0x38]
lea eax, [ebp + 1]
test ebx, ebx
je 0x419399
mov edx, dword [esp + 0x268]
cmp dword [edx], 2
je 0x4184a7
mov ecx, dword [esp + 0x70]
test ecx, ecx
jne 0x419484
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4195f0
cmp byte [esp + 0xb7], 0x2d
mov dword [esp + 0x3c], ebp
mov ebp, eax
je 0x419793
mov dword [esp + 0x50], 0
xor edx, edx
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x70], 1
jmp 0x418175
mov eax, dword [esp + 0x268]
mov ebx, dword [esp + 0x38]
mov edx, dword [eax]
test ebx, ebx
je 0x41931b
cmp edx, 1
je 0x419193
mov dword [esp + 0x3c], ebp
add ebp, 1
jmp 0x4184ad
mov dword [esp + 0x3c], ebp
xor edx, edx
add ebp, 1
mov ecx, 1
mov dword [esp + 0x34], 0
xor ebx, ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x50], 1
jmp 0x418175
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x418b4e
mov eax, dword [esp + 0x268]
cmp dword [eax], 1
je 0x4196f4
mov eax, dword [esp + 0x268]
mov dword [esp + 0x3c], ebp
xor ebx, ebx
add ebp, 1
mov dword [esp + 0x34], 0
xor edx, edx
mov ecx, 1
add dword [eax + 0x34], 1
mov dword [esp + 0x20], 0
jmp 0x418175
mov edx, dword [esp + 0x38]
lea eax, [ebp + 1]
test edx, edx
je 0x418f26
mov edx, dword [esp + 0x268]
mov dword [esp + 0x3c], ebp
mov ebp, eax
mov ecx, 1
mov dword [esp + 0x34], 0
mov ebx, 0
cmp dword [edx], 2
mov dword [esp + 0x20], 0
jne 0x4184c4
lea esi, [esp + 0xa0]
mov edx, 1
jmp 0x418175
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x268]
lea eax, [ebp + 1]
test ecx, ecx
je 0x418a01
cmp dword [edx], 2
mov dword [esp + 0x3c], ebp
mov ebp, eax
mov ecx, 1
mov dword [esp + 0x34], 0
mov ebx, 0
mov dword [esp + 0x20], 0
jne 0x4184c4
lea esi, [esp + 0xa4]
mov edx, 1
jmp 0x418175
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x38]
mov edx, dword [eax]
lea eax, [ebp + 1]
test ecx, ecx
je 0x419359
mov dword [esp + 0x3c], ebp
mov ecx, 1
mov ebp, eax
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
cmp edx, 1
je 0x41917f
mov dword [esp + 0x60], 1
mov edx, 1
jmp 0x418175
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x38]
mov edx, dword [eax]
lea eax, [ebp + 1]
test ecx, ecx
je 0x4193eb
cmp edx, 1
jne 0x4184a7
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x419682
mov dword [esp + 0x3c], ebp
mov ecx, ebx
mov ebp, eax
xor edx, edx
mov dword [esp + 0x4c], ebx
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
mov dword [esp + 0x3c], ebp
xor edx, edx
add ebp, 1
mov ecx, 1
mov dword [esp + 0x34], 0
xor ebx, ebx
mov dword [esp + 0x20], 1
jmp 0x418175
mov edi, dword [esp + 0x268]
fldz
fxch st(1)
mov ecx, 0xf
mov eax, esi
fucompi st(1)
fstp st(0)
rep stosd dword es:[edi], eax
jp 0x419052
jne 0x419052
mov dword [esp + 0x68], 0
mov eax, 0x13
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], 0
mov dword [esp + 0x48], 0
jmp 0x418348
mov eax, dword [esp + 0x268]
mov esi, dword [eax + 4]
test esi, esi
jne 0x418d9f
mov eax, dword [eax + 0x28]
test eax, eax
jne 0x41916d
mov eax, dword [esp + 0x268]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0x20]
test ebx, ebx
je 0x418dcb
lea ebx, [ecx - 1]
mov edx, 0x55555556
mov eax, ebx
sar ebx, 0x1f
imul edx
mov eax, dword [esp + 0x268]
sub edx, ebx
add dword [eax + 0x34], edx
mov eax, dword [esp + 0xb8]
cmp eax, ecx
jle 0x418de2
mov esi, dword [esp + 0x268]
sub eax, ecx
add dword [esi + 0x34], eax
mov eax, dword [esp + 0x268]
mov eax, dword [eax + 0x2c]
cmp eax, 4
jg 0x418e02
mov esi, dword [esp + 0x268]
mov edx, 5
sub edx, eax
add dword [esi + 0x38], edx
mov eax, dword [esp + 0x268]
mov dword [esp + 0x20], 1
mov edx, dword [eax + 0x18]
test edx, edx
jne 0x418627
add dword [eax + 0x34], 1
jmp 0x418627
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x418e3c
lea esi, [esp + 0x140]
je 0x4188e0
mov dword [esp + 0x20], eax
lea esi, [esp + 0x140]
fstp qword [esp + 0x28]
fild dword [esp + 0x20]
fstp qword [esp + 8]
fld dword [0x424a2c]
fstp qword [esp]
call fcn.0041fb70
fld qword [esp + 0x28]
mov dword [esp + 8], esi
fmul st(1)
fxch st(1)
fstp qword [esp + 0x20]
fstp qword [esp]
call fcn.0041f900
fnstcw word [esp + 0xa2]
fld qword [esp + 0x20]
fld qword [0x424a40]
movzx eax, word [esp + 0xa2]
fdiv st(1)
or ah, 0xc
mov word [esp + 0xaa], ax
fmulp st(2)
fxch st(1)
fldcw word [esp + 0xaa]
fistp qword [esp + 0x20]
fldcw word [esp + 0xa2]
fld qword [0x424a48]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
fdiv st(1)
fldcw word [esp + 0xaa]
fistp qword [esp + 0x20]
fldcw word [esp + 0xa2]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
cmp eax, edi
mov ecx, edx
sbb ecx, ebp
jge 0x4194a7
fld1
fadd qword [esp + 0x140]
fdivrp st(1)
fadd qword [esp + 0xc0]
fstp qword [esp + 0x58]
jmp 0x4188e2
mov dword [esp + 0x8c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x74], 0
jmp 0x418829
mov ebx, dword [esp + 0x268]
add dword [ebx + 0x34], 1
jmp 0x418a05
fld qword [esp + 0x58]
fabs
fld dword [0x424a24]
fxch st(1)
fcomi st(1)
jae 0x41912a
fstp st(1)
fnstcw word [esp + 0xa2]
movzx eax, word [esp + 0xa2]
or ah, 0xc
mov word [esp + 0xaa], ax
fldcw word [esp + 0xaa]
fistp qword [esp + 0x20]
fldcw word [esp + 0xa2]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
mov dword [esp], edi
mov dword [esp + 4], ebp
call fcn.0041cc60
sub esp, 8
mov edx, dword [esp + 0x268]
cmp eax, dword [edx + 0x20]
jne 0x4188f4
fld qword [esp + 0x58]
fdiv dword [0x424a2c]
lea eax, [esp + 0x1c0]
mov dword [esp + 4], 0x4246ed
add dword [esp + 0x68], 1
mov edi, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 8], edi
shr edi, 0x1f
fstp qword [esp + 0x58]
call sub.msvcrt.dll_sprintf
mov edx, dword [esp + 0x268]
mov dword [esp + 0x74], edi
mov dword [esp + 0x88], eax
sub eax, edi
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x20], edx
sub edx, eax
mov dword [esp + 0x8c], edx
jmp 0x4188f4
cmp eax, 0xad9cc000
mov eax, edx
lea esi, [esp + 0x140]
sbb eax, 0xfffe3940
jge 0x4188e2
fnstcw word [esp + 0xa2]
fld qword [esp + 0x58]
movzx eax, word [esp + 0xa2]
and ah, 0xf3
or ah, 4
mov word [esp + 0xa6], ax
fldcw word [esp + 0xa6]
frndint
fldcw word [esp + 0xa2]
fstp qword [esp + 0x58]
jmp 0x4188e2
fld qword [esp + 0x58]
fabs
fstp qword [esp]
call sub.msvcrt.dll_log10
fnstcw word [esp + 0xa2]
movzx eax, word [esp + 0xa2]
and ah, 0xf3
or ah, 4
mov word [esp + 0xa6], ax
movzx eax, word [esp + 0xa2]
fldcw word [esp + 0xa6]
frndint
fldcw word [esp + 0xa2]
or ah, 0xc
mov word [esp + 0xaa], ax
fldcw word [esp + 0xaa]
fistp dword [esp + 0x20]
fldcw word [esp + 0xa2]
mov eax, dword [esp + 0x20]
lea esi, [eax + 1]
mov eax, 0x13
cmp esi, 0x13
mov dword [esp + 0x68], esi
cmovge eax, esi
jmp 0x418d67
mov esi, dword [esp + 0x268]
mov esi, dword [esi + 0x10]
mov dword [esp + 0x88], esi
test esi, esi
jne 0x419289
mov edx, dword [esp + 0x68]
test edx, edx
jns 0x419430
mov esi, dword [esp + 0x268]
not eax
mov dword [esp + 0x8c], 0
cmp eax, dword [esi + 0x24]
jl 0x418f19
fldz
mov dword [esp + 0x68], 0
mov dword [esp + 0x74], 0
fstp qword [esp + 0x58]
jmp 0x418829
fnstcw word [esp + 0xa2]
fsubrp st(1)
movzx eax, word [esp + 0xa2]
or ah, 0xc
mov word [esp + 0xaa], ax
fldcw word [esp + 0xaa]
fistp qword [esp + 0x20]
fldcw word [esp + 0xa2]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
lea eax, [ebp - 0x80000000]
mov ebp, eax
jmp 0x418f82
mov esi, dword [esp + 0x268]
add eax, 3
mov dword [esi + 0x28], eax
jmp 0x418d9f
mov dword [esp + 0x60], 1
lea esi, [esp + 0xa8]
jmp 0x418175
mov edx, dword [esp + 0x60]
test edx, edx
je 0x41962e
mov ebx, dword [esp + 0x94]
lea eax, [ebp + 1]
cmp dword [esp + 0xbc], ebx
je 0x419a78
mov dword [esp + 0x3c], ebp
mov ebp, eax
lea eax, [ebx + 1]
mov ecx, edx
lea esi, [esp + ebx + 0x140]
mov dword [esp + 0x94], eax
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
mov dword [esp + 8], 5
mov ebx, dword [sym.imp.msvcrt.dll__strnicmp]
mov dword [esp + 4], str.AM_PM
mov dword [esp], esi
call ebx
test eax, eax
jne 0x419771
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x4197dc
mov ebx, dword [esp + 0x44]
lea eax, [ebp + 1]
fld qword [esp + 0x58]
xor ecx, ecx
mov dword [esp + 0x20], eax
add ebx, eax
cmp byte [ebx], 0x2f
fstp qword [esp]
setne cl
add ecx, 1
mov dword [esp + 0x3c], ecx
call fcn.0041b650
mov edx, 1
sub esp, 8
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
add esi, ecx
add esi, dword [esp + 0x44]
cmp eax, 0xb
cmovle esi, dword [esp + 0x34]
xor eax, eax
cmp byte [ebx], 0x2f
mov dword [esp + 0x34], 0
setne al
mov dword [esp + 0x20], 0
xor ebx, ebx
lea eax, [ebp + eax*2 + 2]
mov dword [esp + 0x3c], eax
lea ebp, [eax + 1]
jmp 0x418175
mov eax, dword [esp + 0x268]
mov esi, dword [esp + 0x68]
mov eax, dword [eax + 0x20]
mov ebx, esi
sub ebx, eax
je 0x4187a4
sub eax, esi
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fst qword [esp + 8]
cmp ebx, 0xfffffecc
jl 0x4192d8
fstp st(0)
fld dword [0x424a2c]
fstp qword [esp]
call fcn.0041fb70
fmul qword [esp + 0x58]
mov dword [esp + 0x68], ebx
fstp qword [esp + 0x58]
jmp 0x4187ac
fstp qword [esp + 0x28]
fld dword [0x424a30]
fstp qword [esp]
call fcn.0041fb70
fmul qword [esp + 0x58]
fstp qword [esp + 0x20]
fld qword [esp + 0x28]
fstp qword [esp + 8]
fld dword [0x424a34]
fstp qword [esp]
call fcn.0041fb70
fld qword [esp + 0x20]
mov dword [esp + 0x68], ebx
fmulp st(1)
fstp qword [esp + 0x58]
jmp 0x4187ac
lea eax, [ebp + 1]
cmp edx, 1
jne 0x4189fa
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x268]
test ecx, ecx
je 0x41981c
add dword [ebx + 0x24], 1
mov edx, edi
mov ebx, dword [esp + 0x268]
cmp dl, 0x23
jne 0x418f2d
add dword [ebx + 0x38], 1
jmp 0x418a05
cmp edx, 1
je 0x4196b6
mov ebx, dword [esp + 0x268]
mov dword [esp + 0x3c], ebp
xor edx, edx
mov ebp, eax
mov dword [esp + 0x34], 0
mov ecx, 1
add dword [ebx + 0x34], 1
xor ebx, ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x60], 1
jmp 0x418175
mov ebx, dword [esp + 0x268]
mov edx, dword [ebx + 0x18]
add dword [ebx + 0x34], 1
mov dword [esp + 0x20], edx
test edx, edx
jne 0x418a05
mov edx, edi
xor ecx, ecx
mov dword [esp + 0x3c], ebp
mov ebp, eax
cmp dl, 0x2b
mov dword [ebx + 0x18], 1
sete cl
mov dword [esp + 0x50], 0
xor edx, edx
mov dword [ebx + 0x1c], ecx
xor ebx, ebx
mov ecx, 1
mov dword [esp + 0x34], 0
jmp 0x418175
cmp edx, 1
jne 0x418f26
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x4197a8
mov edx, dword [esp + 0x268]
mov ecx, ebx
mov dword [esp + 0x3c], ebp
xor ebx, ebx
mov dword [esp + 0x4c], ecx
mov ebp, eax
add dword [edx + 0x28], 3
xor edx, edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
lea esi, [eax + 1]
cmp esi, 0x13
jle 0x418f06
lea ebx, [eax - 0x12]
mov eax, 0x13
sub eax, esi
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fstp qword [esp + 8]
fld dword [0x424a2c]
fstp qword [esp]
call fcn.0041fb70
fmul qword [esp + 0x58]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x68], ebx
mov dword [esp + 0x74], 0
fstp qword [esp + 0x58]
jmp 0x418829
mov edx, dword [esp + 0x70]
mov ecx, edx
mov dword [esp + 0x3c], ebp
xor ebx, ebx
mov ebp, eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
neg eax
mov ecx, ebp
fld qword [esp + 0x140]
adc edx, 0
neg edx
cmp edi, eax
sbb ecx, edx
jge 0x418ef4
fsub dword [0x424a50]
jmp 0x418ef4
mov ecx, 3
jmp 0x418a3e
mov ebx, dword [esp + 0x44]
mov eax, edi
cmp al, byte [ebx + ebp + 1]
jne 0x419cb0
mov ebx, 1
mov edx, edi
mov eax, ebx
add ebx, 1
cmp byte [esi + ebx], dl
je 0x4194ed
mov dword [esp + 0x20], eax
mov edi, edx
cmp dl, 0x6d
je 0x4199c6
cmp ebx, 5
sete cl
cmp dl, 0x74
sete dl
and dl, cl
jne 0x419831
mov eax, edi
cmp al, 0x74
jne 0x419b53
xor ecx, ecx
cmp dword [esp + 0x20], 1
je 0x41a0cc
mov eax, edi
and eax, 0xffffffdf
cmp al, 0x48
mov eax, edi
jne 0x41a4e4
cmp al, 0x68
sete byte [esp + 0x20]
test dl, dl
jne 0x41a43a
test cl, cl
jne 0x41a17d
cmp al, 0x4d
sete al
test al, al
jne 0x41a0d6
mov eax, edi
cmp al, 0x79
sete al
cmp ebx, 2
jg 0x419e78
test al, al
je 0x419e78
lea eax, [ebx + ebp - 1]
cmp dword [esp + 0x38], 0
mov dword [esp + 0x3c], eax
lea ebp, [eax + 1]
je 0x419e42
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b2f0
mov ecx, 0x64
cdq
push edi
idiv ecx
push edi
mov dword [esp + 4], str._02d
mov dword [esp + 8], edx
lea esi, [esp + 0xc0]
mov edi, 0x79
xor ebx, ebx
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x7c], 0
mov edx, 1
mov dword [esp + 0x34], 0
mov ecx, eax
mov dword [esp + 0x20], 0
jmp 0x418175
mov dword [esp + 0x50], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], ebp
mov ebp, eax
mov dword [esp + 0x70], 1
mov ecx, 1
xor ebx, ebx
lea esi, [esp + 0xb7]
mov edx, 1
jmp 0x418175
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x419919
mov ebx, dword [esp + 0x8c]
test ebx, ebx
jle 0x419ab8
mov eax, edi
xor edx, edx
mov dword [esp + 0x3c], ebp
cmp al, 0x30
mov dword [esp + 0x50], 0
sete dl
sub ebx, 1
add ebp, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x8c], ebx
xor ebx, ebx
mov dword [esp + 0x20], 0
jmp 0x418175
mov dword [esp + 0x3c], ebp
xor edx, edx
mov ebp, eax
mov ecx, 1
mov dword [esp + 0x50], 0
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 1
jmp 0x41817d
mov ebx, dword [esp + 0x268]
mov edx, dword [ebx + 4]
test edx, edx
jne 0x419362
mov dword [ebx + 4], 1
mov edx, dword [ebx + 0x28]
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x419d53
mov ecx, dword [esp + 0x268]
add edx, 3
mov dword [esp + 0x4c], ebx
mov dword [ecx + 0x28], edx
jmp 0x419362
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x419a95
mov eax, dword [esp + 0x268]
mov dword [esp + 0x3c], ebp
xor ebx, ebx
add ebp, 1
mov dword [esp + 0x50], 0
xor edx, edx
mov ecx, 1
add dword [eax + 0x34], 1
mov dword [eax + 0xc], 1
mov dword [esp + 0x34], 0
jmp 0x418175
mov edx, dword [esp + 0x268]
mov dword [esp + 0x3c], ebp
xor ebx, ebx
mov ebp, eax
mov dword [esp + 0x50], 0
mov ecx, 1
add dword [edx + 0x34], 1
xor edx, edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x34], 1
jmp 0x418175
mov dword [esp + 8], 3
mov dword [esp + 4], 0x424700
mov dword [esp], esi
call ebx
test eax, eax
je 0x419209
jmp case.0x418470.1
mov dword [esp + 0x50], 0
mov dword [esp + 0x34], 0
jmp 0x41960e
mov dword [esp + 0x3c], ebp
xor ebx, ebx
mov ebp, eax
xor edx, edx
mov dword [esp + 0x50], 0
mov ecx, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 1
jmp 0x41817d
mov eax, dword [esp + 0x268]
mov eax, dword [eax]
test eax, eax
jne 0x419a8c
mov eax, dword [esp + 0x268]
mov dword [eax], 2
mov eax, dword [esp + 0x268]
xor edx, edx
mov ecx, 1
mov dword [eax + 0x30], 1
mov eax, dword [esp + 0x44]
lea ebx, [eax + ebp + 1]
jmp 0x41925f
mov edx, dword [esp + 0x64]
test edx, edx
je 0x419aaf
add dword [ebx + 0x2c], 1
jmp 0x41933e
lea ebx, [esp + 0xc0]
mov dword [esp + 8], 0
lea eax, [ebp + 4]
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], ebx
mov dword [esp + 0x3c], eax
call fcn.0041c5e0
mov eax, ebx
mov edx, dword [eax]
add eax, 4
lea ecx, [edx - 0x1010101]
not edx
and ecx, edx
and ecx, 0x80808080
je 0x419859
mov edx, ecx
fld qword [esp + 0x58]
mov dword [esp + 8], ebx
shr edx, 0x10
test ecx, 0x8080
cmove ecx, edx
lea edx, [eax + 2]
cmove eax, edx
fstp qword [esp]
mov edx, ecx
add dl, cl
sbb eax, 3
sub eax, ebx
mov dword [esp + 0xc], eax
call fcn.00417d10
sub esp, 0x10
mov edi, eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x419b33
mov eax, dword [edi]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__strdup]
mov ecx, dword [edi + 4]
mov edx, 1
mov ebx, eax
and ecx, 0x7fffffff
mov dword [esp], edi
add ebp, 5
mov edi, 0x74
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], edx
call fcn.00417980
sub esp, 4
mov dword [esp + 0x7c], 0
mov edx, dword [esp + 0x98]
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x20], 0
jmp 0x418175
mov eax, dword [esp + 0x268]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x419c5d
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x80]
mov edx, 0x55555556
sub ecx, ebx
add ecx, dword [esp + 0x78]
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
sub ecx, eax
mov dword [esp + 0x20], ecx
jne 0x419c5d
mov edx, dword [esp + 0x84]
or edx, dword [esp + 0x78]
jne 0x419c52
test ebx, ebx
je 0x419c52
lea eax, [ebp - 1]
mov ecx, 1
xor ebx, ebx
mov edx, 1
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x60]
lea esi, [esp + 0xac]
mov dword [esp + 0x50], 0
mov dword [esp + 0x64], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x84], 1
jmp 0x418175
mov ebx, 1
cmp ebx, 2
jg 0x41a2b5
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x41a2b5
cmp ebx, 2
mov edi, 0x6d
sete cl
cmp ebx, 1
sete dl
test dl, dl
jne 0x41a277
test cl, cl
jne 0x41a231
mov eax, edi
cmp al, 0x4d
sete al
test al, al
je 0x419564
test cl, cl
je 0x41955c
add ebp, 2
cmp dword [esp + 0x38], 0
je 0x41a21f
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b330
push ebx
push ebx
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], str._02d
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov ecx, eax
mov dword [esp + 0x7c], 0
mov edi, 0x4d
xor ebx, ebx
mov edx, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
mov edx, edi
mov ecx, dword [esp + 0x60]
cmp dl, 0x30
sete dl
movzx edx, dl
jmp 0x41948a
cmp eax, 2
je 0x4197fa
mov dword [esp], 1
call fcn.00413710
push ebx
mov dword [esp + 0x20], 0
jmp 0x418627
add dword [ebx + 0x20], 1
jmp 0x41933e
mov ebx, dword [esp + 0x90]
cmp dword [esp + 0x88], ebx
je 0x41a303
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x268]
lea eax, [esi + 1]
lea esi, [esp + esi + 0x1c0]
mov edx, eax
sub edx, dword [esp + 0x74]
cmp edx, dword [ebx + 0x2c]
jl 0x41a2f1
cmp dword [esp + 0x88], eax
je 0x41a2f1
lea edx, [ebp - 1]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x64]
mov ecx, edx
mov dword [esp + 0x50], 0
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x90], eax
jmp 0x418175
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x268]
xor ebx, ebx
mov ecx, 1
and eax, 0x7fffffff
add dword [edx + 0x34], eax
xor edx, edx
jmp 0x4198cd
cmp al, 0x64
sete al
mov edx, eax
test cl, cl
je 0x419dd1
test al, al
je 0x419dd1
lea ebx, [esp + 0xc0]
mov dword [esp + 8], 0
lea eax, [ebp + 4]
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], ebx
mov dword [esp + 0x3c], eax
call fcn.0041c4a0
mov eax, ebx
mov edx, dword [eax]
add eax, 4
lea ecx, [edx - 0x1010101]
not edx
and ecx, edx
and ecx, 0x80808080
je 0x419b92
mov edx, ecx
fld qword [esp + 0x58]
mov dword [esp + 8], ebx
shr edx, 0x10
test ecx, 0x8080
cmove ecx, edx
lea edx, [eax + 2]
cmove eax, edx
fstp qword [esp]
mov edx, ecx
add dl, cl
sbb eax, 3
sub eax, ebx
mov dword [esp + 0xc], eax
call fcn.00417d10
sub esp, 0x10
mov edi, eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x419d33
mov eax, dword [edi]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__strdup]
mov ecx, dword [edi + 4]
mov edx, 1
mov ebx, eax
and ecx, 0x7fffffff
mov dword [esp], edi
add ebp, 5
mov edi, 0x64
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], edx
call fcn.00417980
sub esp, 4
mov dword [esp + 0x7c], 0
mov edx, dword [esp + 0x98]
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x20], 0
jmp 0x418175
mov dword [esp + 0x84], 0
mov ebx, dword [esp + 0x78]
lea eax, [ebp + 1]
test ebx, ebx
je 0x419d6d
mov edx, edi
mov dword [esp + 0x60], 0
cmp dl, 0x30
mov dword [esp + 0x3c], ebp
mov ebp, eax
sete dl
sub ebx, 1
mov dword [esp + 0x78], ebx
movzx edx, dl
mov dword [esp + 0x50], 0
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
cmp al, 0x6d
je 0x4199c1
mov eax, edi
mov ecx, 1
cmp al, 0x74
jne 0x41a353
mov ebx, dword [esp + 0x38]
lea eax, [ecx + ebp - 1]
mov dword [esp + 0x3c], eax
lea ebp, [eax + 1]
test ebx, ebx
je 0x41a3d8
fld qword [esp + 0x58]
xor ebx, ebx
mov esi, 0x4246e5
mov edi, 0x74
mov dword [esp + 0x98], ecx
fstp qword [esp]
call fcn.0041b650
push edx
cmp eax, 0xb
mov eax, 0x4246e8
push edx
cmovg esi, eax
mov ecx, dword [esp + 0x98]
mov edx, 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x268]
xor edx, edx
mov ecx, 1
and eax, 0x7fffffff
add dword [ebx + 0x34], eax
xor ebx, ebx
jmp 0x419c06
test edx, edx
je 0x419362
mov ebx, dword [esp + 0x268]
add edx, 3
mov dword [ebx + 0x28], edx
jmp 0x419362
mov edx, dword [esp + 0x80]
cmp dword [esp + 0xb8], edx
je 0x41a414
mov dword [esp + 0x3c], ebp
mov ebp, eax
lea eax, [edx + 1]
xor ebx, ebx
lea esi, [esp + edx + 0xc0]
mov dword [esp + 0x60], 0
mov ecx, 1
mov edx, 1
mov dword [esp + 0x64], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x80], eax
jmp 0x418175
cmp ebx, 2
sete cl
test dl, cl
je 0x419eef
mov edi, dword [esp + 0x38]
add ebp, 2
test edi, edi
je 0x419eb9
fld qword [esp + 0x58]
mov edi, 0x64
fstp qword [esp]
call fcn.0041b370
push ebx
push ebx
xor ebx, ebx
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], str._02d
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x7c], 0
mov edx, 1
mov dword [esp + 0x34], 0
mov ecx, eax
mov dword [esp + 0x20], 0
jmp 0x418175
mov eax, dword [esp + 0x268]
add dword [eax + 0x34], 2
xor ebx, ebx
xor edx, edx
mov edi, 0x79
mov ecx, 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
cmp ebx, 4
jne 0x419f1b
test al, al
je 0x419f1b
lea eax, [ebp + 3]
add ebp, 4
cmp dword [esp + 0x38], 0
mov dword [esp + 0x3c], eax
je 0x419f0b
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b2f0
push esi
push esi
mov dword [esp + 8], eax
mov dword [esp + 4], str._04d
jmp 0x4195b4
mov eax, dword [esp + 0x268]
xor ebx, ebx
xor edx, edx
mov edi, 0x64
mov dword [esp + 0x7c], 0
mov ecx, 1
add dword [eax + 0x34], 2
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
cmp ebx, 1
mov eax, edi
sete dl
cmp al, 0x64
je 0x419f39
lea eax, [edi - 0x6d]
cmp al, 1
jbe 0x4199ec
jmp 0x419531
mov eax, dword [esp + 0x268]
add dword [eax + 0x34], 4
jmp 0x419e4d
cmp dword [esp + 0x38], 0
je 0x419f9b
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x3c], ebp
mov ebp, eax
jmp 0x4184ad
lea eax, [ebx - 3]
cmp eax, 1
jbe 0x41a01a
mov eax, edi
cmp al, 0x4d
sete al
jne 0x419564
test dl, dl
je 0x419a03
cmp dword [esp + 0x38], 0
je 0x419fd6
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b330
push esi
push esi
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4246ed
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ebp
mov ebp, eax
jmp 0x419a4c
mov eax, dword [esp + 0x268]
add dword [eax + 0x34], 1
mov eax, dword [esp + 0x3c]
xor ebx, ebx
mov dword [esp + 0x3c], ebp
mov ebp, eax
mov dword [esp + 0x7c], 0
xor edx, edx
mov ecx, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 1
add dword [eax + 0x38], 1
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ebp
mov ebp, eax
mov dword [esp + 0x7c], 0
xor edx, edx
mov edi, 0x4d
mov ecx, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
fld qword [esp + 0x58]
mov dword [esp + 8], 1
fstp qword [esp]
call fcn.0041b3b0
xor edx, edx
sub esp, 0xc
cmp ebx, 3
sete dl
mov dword [esp + 8], 1
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0041b910
lea edx, [ebx + ebp - 1]
sub esp, 0xc
cmp dword [esp + 0x38], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], edx
je 0x41a32f
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__strdup]
xor ecx, ecx
mov edx, 1
mov ebx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], edx
mov dword [esp], eax
call fcn.00417980
push ecx
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
lea ebp, [eax + 1]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
mov ecx, 2
jmp 0x419cc7
lea eax, [ebx - 3]
cmp eax, 1
ja 0x419f1b
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b330
push edx
push edx
xor edx, edx
cmp ebx, 3
sete dl
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0041b710
push ecx
mov edi, eax
lea eax, [ebx + ebp - 1]
push ecx
cmp dword [esp + 0x38], 0
mov dword [esp + 0x3c], eax
je 0x41a4b3
mov eax, dword [edi]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__strdup]
xor ecx, ecx
mov edx, 1
mov ebx, eax
mov dword [esp], edi
mov edi, 0x4d
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], edx
call fcn.00417980
push ebp
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
lea ebp, [eax + 1]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
add ebp, 2
cmp dword [esp + 0x38], 0
je 0x41a1ee
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b650
push ecx
push ecx
mov esi, dword [esp + 0x268]
cmp dword [esi + 0x30], 0
je 0x41a1ad
cmp byte [esp + 0x20], 0
jne 0x41a4d3
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], str._02d
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov ecx, eax
mov dword [esp + 0x34], 0
xor ebx, ebx
mov edx, 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x7c], 1
jmp 0x418175
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 2
mov dword [esp + 0x34], 0
xor edx, edx
mov ecx, 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x7c], 1
jmp 0x418175
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 2
jmp 0x419ff1
add ebp, 2
cmp dword [esp + 0x38], 0
je 0x41a2cb
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b690
push esi
push esi
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], str._02d
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov ecx, eax
mov dword [esp + 0x7c], 0
jmp 0x4185ab
cmp dword [esp + 0x38], 0
je 0x41a2dd
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b690
push edx
push edx
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4246ed
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ebp
mov ebp, eax
jmp 0x41a26a
cmp ebx, 2
mov edi, 0x4d
sete cl
cmp ebx, 1
sete dl
jmp 0x419531
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 2
jmp 0x419fb2
mov eax, dword [esp + 0x268]
add dword [eax + 0x34], 1
add dword [eax + 0x38], 1
jmp 0x419fa6
mov edx, dword [esp + 0x64]
mov dword [esp + 0x3c], ebp
add ebp, 1
mov ecx, edx
jmp 0x419b0d
mov dword [esp + 0x3c], ebp
mov ecx, dword [esp + 0x64]
add ebp, 1
xor edx, edx
mov dword [esp + 0x50], 0
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x268]
xor ebx, ebx
mov ecx, 1
mov dword [esp + 0x34], eax
and eax, 0x7fffffff
add dword [edx + 0x34], eax
xor edx, edx
jmp 0x41a07f
cmp al, 0x64
mov ebx, 1
sete dl
jne 0x419dd1
mov eax, dword [esp + 0x38]
test eax, eax
je 0x41a39f
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b370
sub esp, 8
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4246ed
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov ecx, eax
lea eax, [ebp + 1]
jmp 0x41a2ad
mov eax, dword [esp + 0x268]
mov dword [esp + 0x3c], ebp
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x7c], 0
add dword [eax + 0x34], 1
add dword [eax + 0x38], 1
lea eax, [ebp + 1]
mov dword [esp + 0x34], 0
mov ebp, eax
mov dword [esp + 0x20], 0
jmp 0x418175
mov eax, dword [esp + 0x268]
xor ebx, ebx
xor edx, edx
mov edi, 0x74
mov dword [esp + 0x7c], 0
add dword [eax + 0x34], ecx
mov ecx, 1
mov dword [eax + 0x30], 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
mov edx, edi
mov dword [esp + 0x3c], ebp
mov ebp, eax
cmp dl, 0x30
mov dword [esp + 0x60], 0
sete dl
mov dword [esp + 0x64], 0
movzx edx, dl
jmp 0x419c8c
cmp dword [esp + 0x38], 0
je 0x41a493
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b650
push ebx
push ebx
mov esi, dword [esp + 0x268]
cmp dword [esi + 0x30], 0
je 0x41a467
cmp byte [esp + 0x20], 0
jne 0x41a55d
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4246ed
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ebp
mov ebp, eax
jmp 0x41a1ca
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 1
add dword [eax + 0x38], 1
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ebp
mov ebp, eax
jmp 0x41a1fb
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x268]
xor edx, edx
mov ecx, 1
and eax, 0x7fffffff
add dword [ebx + 0x34], eax
xor ebx, ebx
jmp 0x41a12f
cmp eax, 0xc
jle 0x41a56a
sub eax, 0xc
jmp 0x41a1ad
cmp al, 0x73
jne 0x419f45
test dl, dl
je 0x41a5d2
cmp dword [esp + 0x38], 0
je 0x41a58e
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b6d0
push edx
push edx
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4246ed
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ebp
mov ebp, eax
mov dword [esp + 0x7c], 0
mov edi, 0x73
xor ebx, ebx
mov edx, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
cmp eax, 0xc
jle 0x41a57c
sub eax, 0xc
jmp 0x41a467
test eax, eax
jne 0x41a1ad
mov eax, 0xc
jmp 0x41a1ad
test eax, eax
jne 0x41a467
mov eax, 0xc
jmp 0x41a467
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 1
add dword [eax + 0x38], 1
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ebp
mov ebp, eax
mov dword [esp + 0x7c], 0
xor edx, edx
mov edi, 0x73
mov ecx, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], 0
jmp 0x418175
test cl, cl
je 0x419f45
add ebp, 2
cmp dword [esp + 0x38], 0
je 0x41a614
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.0041b6d0
push edi
push edi
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], str._02d
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov ecx, eax
jmp 0x41a534
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 2
jmp 0x41a5a9