Function at 0x10055fd0
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 0x10056d16
fstp st(0)
mov eax, dword [esp + 0x268]
cmp dword [eax], 1
je 0x10056258
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 0x100562ad
jne 0x100562ad
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 0x100561d9
mov edx, dword [esp + 0x38]
lea eax, [ebp + 1]
test edx, edx
je 0x100563d0
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 0x10056190
mov eax, edi
cmp al, 0x2c
je 0x100563b8
mov eax, dword [esp + 0x4c]
or eax, dword [esp + 0x54]
mov dword [esp + 0x28], eax
jne 0x100563a0
mov eax, dword [esp + 0x268]
mov dword [esp + 0x4c], 0
mov dword [eax + 8], 1
nop
test edx, edx
je 0x100561cf
test ebx, ebx
cmovne esi, ebx
test ecx, ecx
jne 0x100561a7
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 0x100561cf
mov dword [esp], ebx
call sub.msvcrt.dll_free
cmp dword [esp + 0x40], ebp
je 0x10056670
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
lea esi, [eax + ebp]
movzx edi, byte [esi]
test ecx, ecx
jne 0x10056130
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x10056358
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x268]
test ecx, ecx
je 0x100564f0
mov ebx, dword [eax + 0x14]
mov ecx, dword [esp + 0x34]
lea eax, [ebp + 1]
mov dword [esp + 0x60], ebx
test ebx, ebx
jne 0x100564b0
mov edx, dword [esp + 0x68]
mov dword [esp + 0x3c], ebp
mov ebp, eax
test edx, edx
js 0x100565d8
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 0x10056155
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x1005626d
fld qword [esp + 0x58]
fmul dword [0x10070da0]
fstp qword [esp + 0x58]
mov eax, dword [esp + 0x268]
fild dword [eax + 0x28]
fstp qword [esp + 8]
fld dword [0x10070da4]
fstp qword [esp]
call fcn.10060a50
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 0x100562ad
je 0x10056762
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 0x100570ad
mov dword [esp + 0x8c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x88], 0
jmp 0x100560a4
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x10056400
mov edx, edi
lea eax, [ebp + 1]
cmp dl, 0x22
je 0x100565b0
mov edx, dword [esp + 0x38]
test edx, edx
je 0x10056640
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 0x10056155
mov dword [esp + 0x4c], 0
mov dword [esp + 0x28], 0
jmp 0x10056190
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x6c], edi
jne 0x10056190
jmp 0x10056167
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 0x10056155
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10056422
lea ecx, [edi - 0x23]
cmp cl, 0xd
ja 0x10056422
mov eax, 1
shl eax, cl
test eax, 0x2801
jne 0x10056543
lea eax, [edi - 0x23]
cmp al, 0x56
ja case.0x1005642c.1
movzx eax, al
jmp dword [eax*4 + 0x10070a7c]
mov eax, dword [esp + 0x268]
mov ecx, dword [eax]
test ecx, ecx
jne case.0x1005642c.1
mov dword [eax], 1
lea eax, [edi - 9]
cmp al, 0x70
ja case.0x10056450.1
movzx eax, al
jmp dword [eax*4 + 0x10070bd8]
mov eax, dword [esp + 0x268]
mov edx, dword [eax]
test edx, edx
jne case.0x1005642c.1
mov dword [eax], 2
lea eax, [edi - 9]
cmp al, 0x70
jbe 0x1005644d
lea esi, [esi]
mov edx, dword [esp + 0x38]
lea eax, [ebp + 1]
test edx, edx
je 0x10056f06
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 0x10056155
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 0x10056758
mov esi, 0x10070a63
jmp 0x10056155
mov dword [eax + 0x10], 1
mov eax, edi
cmp al, 0x2b
je 0x10056620
cmp al, 0x2d
jne 0x100565f8
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 0x10056155
mov eax, dword [esp + 0x268]
mov edx, dword [esp + 0x70]
or edx, dword [eax + 0x18]
jne 0x100566b0
mov eax, dword [eax + 0x1c]
lea esi, [ebp - 1]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x20], eax
test eax, eax
jne 0x10056577
cmp byte [esp + 0xb7], 0x2d
jne 0x1005696e
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 0x10056155
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 0x10056155
mov dword [esp + 0x64], ecx
mov edx, ecx
mov esi, 0x10070a5b
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], ebx
jmp 0x10056155
mov dword [esp], 1
call fcn.100537d0
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 0x1005651b
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 0x10056155
mov edi, dword [esp + 0x38]
test edi, edi
je 0x10056d66
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 0x10056422
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 0x10056a09
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 0x10056a0f
test ebx, ebx
jne 0x10056a0f
mov edx, dword [esp + 0x84]
test edx, edx
jne 0x100574ac
mov ecx, 1
test eax, eax
jle 0x10056a1e
mov dword [esp + 0x84], 1
lea esi, [esp + 0xac]
jmp 0x1005658b
mov esi, 0x10070a5b
jmp 0x10056155
mov eax, dword [esp + 0x268]
cmp dword [eax], 1
jne 0x10056076
mov eax, dword [eax + 0x10]
mov dword [esp + 0x88], eax
test eax, eax
je 0x10056ee6
mov dword [esp + 0x68], 0
fld dword [0x10070db0]
fld qword [esp + 0x58]
mov eax, dword [esp + 0x68]
fcompi st(1)
fstp st(0)
jb 0x100567c3
fld qword [esp + 0x58]
fdiv dword [0x10070da4]
add eax, 1
fst qword [esp + 0x58]
fld dword [0x10070db0]
fxch st(1)
fcompi st(1)
fstp st(0)
jae 0x100567a0
mov dword [esp + 0x68], eax
mov esi, dword [esp + 0x68]
lea eax, [esp + 0x1c0]
mov dword [esp + 4], 0x10070a65
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.10060640
mov eax, dword [esp + 0x268]
fld st(0)
mov eax, dword [eax + 0x24]
fstp qword [esp + 0x140]
test eax, eax
jne 0x10056e05
fnstcw word [esp + 0xa2]
fmul qword [0x10070db8]
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 0x10056fdf
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 0x100568c2
fstp st(0)
mov eax, dword [esp + 0x268]
mov ebp, dword [eax + 0x10]
test ebp, ebp
jne 0x10056f16
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.10055aa0
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0xb8]
test edi, edi
jle 0x10056955
mov esi, dword [esp + 0x268]
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x10056955
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 0x10056938
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 0x100560a4
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x70], 1
jmp 0x100561cf
lea eax, [ebp + 1]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x268]
cmp dword [eax], 2
je 0x100574b6
mov ebx, dword [esp + 0x38]
lea eax, [ebp + 1]
test ebx, ebx
jne 0x10056487
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 1
lea eax, [ebp + 1]
jmp 0x100569e7
mov eax, dword [esp + 0x268]
cmp dword [eax], 2
je 0x100571c6
mov ecx, dword [esp + 0x38]
lea eax, [ebp + 1]
test ecx, ecx
jne 0x10056487
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 0x10056155
mov ecx, dword [esp + 0x78]
neg ecx
mov ebx, dword [esp + 0x84]
test ebx, ebx
jne 0x1005658b
add dword [esp + 0x80], ecx
add dword [esp + 0x78], ecx
mov dword [esp + 0x84], 0
jmp 0x1005658b
mov eax, dword [esp + 0x268]
cmp dword [eax], 1
jne case.0x10056450.1
mov ecx, dword [esp + 0x64]
test ecx, ecx
jne 0x10057a75
mov edx, dword [esp + 0x38]
lea eax, [ebp + 1]
test edx, edx
je 0x1005771a
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 0x10056155
mov ebx, dword [esp + 0x38]
lea eax, [ebp + 1]
test ebx, ebx
je 0x10057379
mov edx, dword [esp + 0x268]
cmp dword [edx], 2
je 0x10056487
mov ecx, dword [esp + 0x70]
test ecx, ecx
jne 0x10057464
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x20], edx
test edx, edx
jne 0x100575d0
cmp byte [esp + 0xb7], 0x2d
mov dword [esp + 0x3c], ebp
mov ebp, eax
je 0x10057773
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 0x10056155
mov eax, dword [esp + 0x268]
mov ebx, dword [esp + 0x38]
mov edx, dword [eax]
test ebx, ebx
je 0x100572fb
cmp edx, 1
je 0x10057173
mov dword [esp + 0x3c], ebp
add ebp, 1
jmp 0x1005648d
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 0x10056155
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x10056b2e
mov eax, dword [esp + 0x268]
cmp dword [eax], 1
je 0x100576d4
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 0x10056155
mov edx, dword [esp + 0x38]
lea eax, [ebp + 1]
test edx, edx
je 0x10056f06
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 0x100564a4
lea esi, [esp + 0xa0]
mov edx, 1
jmp 0x10056155
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x268]
lea eax, [ebp + 1]
test ecx, ecx
je 0x100569e1
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 0x100564a4
lea esi, [esp + 0xa4]
mov edx, 1
jmp 0x10056155
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x38]
mov edx, dword [eax]
lea eax, [ebp + 1]
test ecx, ecx
je 0x10057339
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 0x1005715f
mov dword [esp + 0x60], 1
mov edx, 1
jmp 0x10056155
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x38]
mov edx, dword [eax]
lea eax, [ebp + 1]
test ecx, ecx
je 0x100573cb
cmp edx, 1
jne 0x10056487
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x10057662
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 0x10056155
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 0x10056155
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 0x10057032
jne 0x10057032
mov dword [esp + 0x68], 0
mov eax, 0x13
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], 0
mov dword [esp + 0x48], 0
jmp 0x10056328
mov eax, dword [esp + 0x268]
mov esi, dword [eax + 4]
test esi, esi
jne 0x10056d7f
mov eax, dword [eax + 0x28]
test eax, eax
jne 0x1005714d
mov eax, dword [esp + 0x268]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0x20]
test ebx, ebx
je 0x10056dab
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 0x10056dc2
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 0x10056de2
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 0x10056607
add dword [eax + 0x34], 1
jmp 0x10056607
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x10056e1c
lea esi, [esp + 0x140]
je 0x100568c0
mov dword [esp + 0x20], eax
lea esi, [esp + 0x140]
fstp qword [esp + 0x28]
fild dword [esp + 0x20]
fstp qword [esp + 8]
fld dword [0x10070da4]
fstp qword [esp]
call fcn.10060a50
fld qword [esp + 0x28]
mov dword [esp + 8], esi
fmul st(1)
fxch st(1)
fstp qword [esp + 0x20]
fstp qword [esp]
call fcn.10060640
fnstcw word [esp + 0xa2]
fld qword [esp + 0x20]
fld qword [0x10070db8]
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 [0x10070dc0]
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 0x10057487
fld1
fadd qword [esp + 0x140]
fdivrp st(1)
fadd qword [esp + 0xc0]
fstp qword [esp + 0x58]
jmp 0x100568c2
mov dword [esp + 0x8c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x74], 0
jmp 0x10056809
mov ebx, dword [esp + 0x268]
add dword [ebx + 0x34], 1
jmp 0x100569e5
fld qword [esp + 0x58]
fabs
fld dword [0x10070d9c]
fxch st(1)
fcomi st(1)
jae 0x1005710a
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.1005e460
sub esp, 8
mov edx, dword [esp + 0x268]
cmp eax, dword [edx + 0x20]
jne 0x100568d4
fld qword [esp + 0x58]
fdiv dword [0x10070da4]
lea eax, [esp + 0x1c0]
mov dword [esp + 4], 0x10070a65
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 0x100568d4
cmp eax, 0xad9cc000
mov eax, edx
lea esi, [esp + 0x140]
sbb eax, 0xfffe3940
jge 0x100568c2
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 0x100568c2
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 0x10056d47
mov esi, dword [esp + 0x268]
mov esi, dword [esi + 0x10]
mov dword [esp + 0x88], esi
test esi, esi
jne 0x10057269
mov edx, dword [esp + 0x68]
test edx, edx
jns 0x10057410
mov esi, dword [esp + 0x268]
not eax
mov dword [esp + 0x8c], 0
cmp eax, dword [esi + 0x24]
jl 0x10056ef9
fldz
mov dword [esp + 0x68], 0
mov dword [esp + 0x74], 0
fstp qword [esp + 0x58]
jmp 0x10056809
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 0x10056f62
mov esi, dword [esp + 0x268]
add eax, 3
mov dword [esi + 0x28], eax
jmp 0x10056d7f
mov dword [esp + 0x60], 1
lea esi, [esp + 0xa8]
jmp 0x10056155
mov edx, dword [esp + 0x60]
test edx, edx
je 0x1005760e
mov ebx, dword [esp + 0x94]
lea eax, [ebp + 1]
cmp dword [esp + 0xbc], ebx
je 0x10057a58
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 0x10056155
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 0x10057751
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x100577bc
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.1005c4a0
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 0x10056155
mov eax, dword [esp + 0x268]
mov esi, dword [esp + 0x68]
mov eax, dword [eax + 0x20]
mov ebx, esi
sub ebx, eax
je 0x10056784
sub eax, esi
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fst qword [esp + 8]
cmp ebx, 0xfffffecc
jl 0x100572b8
fstp st(0)
fld dword [0x10070da4]
fstp qword [esp]
call fcn.10060a50
fmul qword [esp + 0x58]
mov dword [esp + 0x68], ebx
fstp qword [esp + 0x58]
jmp 0x1005678c
fstp qword [esp + 0x28]
fld dword [0x10070da8]
fstp qword [esp]
call fcn.10060a50
fmul qword [esp + 0x58]
fstp qword [esp + 0x20]
fld qword [esp + 0x28]
fstp qword [esp + 8]
fld dword [0x10070dac]
fstp qword [esp]
call fcn.10060a50
fld qword [esp + 0x20]
mov dword [esp + 0x68], ebx
fmulp st(1)
fstp qword [esp + 0x58]
jmp 0x1005678c
lea eax, [ebp + 1]
cmp edx, 1
jne 0x100569da
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x268]
test ecx, ecx
je 0x100577fc
add dword [ebx + 0x24], 1
mov edx, edi
mov ebx, dword [esp + 0x268]
cmp dl, 0x23
jne 0x10056f0d
add dword [ebx + 0x38], 1
jmp 0x100569e5
cmp edx, 1
je 0x10057696
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 0x10056155
mov ebx, dword [esp + 0x268]
mov edx, dword [ebx + 0x18]
add dword [ebx + 0x34], 1
mov dword [esp + 0x20], edx
test edx, edx
jne 0x100569e5
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 0x10056155
cmp edx, 1
jne 0x10056f06
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x10057788
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 0x10056155
lea esi, [eax + 1]
cmp esi, 0x13
jle 0x10056ee6
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 [0x10070da4]
fstp qword [esp]
call fcn.10060a50
fmul qword [esp + 0x58]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x68], ebx
mov dword [esp + 0x74], 0
fstp qword [esp + 0x58]
jmp 0x10056809
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 0x10056155
neg eax
mov ecx, ebp
fld qword [esp + 0x140]
adc edx, 0
neg edx
cmp edi, eax
sbb ecx, edx
jge 0x10056ed4
fsub dword [0x10070dc8]
jmp 0x10056ed4
mov ecx, 3
jmp 0x10056a1e
mov ebx, dword [esp + 0x44]
mov eax, edi
cmp al, byte [ebx + ebp + 1]
jne 0x10057c90
mov ebx, 1
mov edx, edi
mov eax, ebx
add ebx, 1
cmp byte [esi + ebx], dl
je 0x100574cd
mov dword [esp + 0x20], eax
mov edi, edx
cmp dl, 0x6d
je 0x100579a6
cmp ebx, 5
sete cl
cmp dl, 0x74
sete dl
and dl, cl
jne 0x10057811
mov eax, edi
cmp al, 0x74
jne 0x10057b33
xor ecx, ecx
cmp dword [esp + 0x20], 1
je 0x100580ac
mov eax, edi
and eax, 0xffffffdf
cmp al, 0x48
mov eax, edi
jne 0x100584c4
cmp al, 0x68
sete byte [esp + 0x20]
test dl, dl
jne 0x1005841a
test cl, cl
jne 0x1005815d
cmp al, 0x4d
sete al
test al, al
jne 0x100580b6
mov eax, edi
cmp al, 0x79
sete al
cmp ebx, 2
jg 0x10057e58
test al, al
je 0x10057e58
lea eax, [ebx + ebp - 1]
cmp dword [esp + 0x38], 0
mov dword [esp + 0x3c], eax
lea ebp, [eax + 1]
je 0x10057e22
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c140
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 0x10056155
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 0x10056155
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x100578f9
mov ebx, dword [esp + 0x8c]
test ebx, ebx
jle 0x10057a98
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 0x10056155
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 0x1005615d
mov ebx, dword [esp + 0x268]
mov edx, dword [ebx + 4]
test edx, edx
jne 0x10057342
mov dword [ebx + 4], 1
mov edx, dword [ebx + 0x28]
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x10057d33
mov ecx, dword [esp + 0x268]
add edx, 3
mov dword [esp + 0x4c], ebx
mov dword [ecx + 0x28], edx
jmp 0x10057342
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x10057a75
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 0x10056155
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 0x10056155
mov dword [esp + 8], 3
mov dword [esp + 4], 0x10070a78
mov dword [esp], esi
call ebx
test eax, eax
je 0x100571e9
jmp case.0x10056450.1
mov dword [esp + 0x50], 0
mov dword [esp + 0x34], 0
jmp 0x100575ee
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 0x1005615d
mov eax, dword [esp + 0x268]
mov eax, dword [eax]
test eax, eax
jne 0x10057a6c
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 0x1005723f
mov edx, dword [esp + 0x64]
test edx, edx
je 0x10057a8f
add dword [ebx + 0x2c], 1
jmp 0x1005731e
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.1005d380
mov eax, ebx
mov edx, dword [eax]
add eax, 4
lea ecx, [edx - 0x1010101]
not edx
and ecx, edx
and ecx, 0x80808080
je 0x10057839
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.10055ce0
sub esp, 0x10
mov edi, eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10057b13
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.10055690
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 0x10056155
mov eax, dword [esp + 0x268]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x10057c3d
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 0x10057c3d
mov edx, dword [esp + 0x84]
or edx, dword [esp + 0x78]
jne 0x10057c32
test ebx, ebx
je 0x10057c32
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 0x10056155
mov ebx, 1
cmp ebx, 2
jg 0x10058295
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x10058295
cmp ebx, 2
mov edi, 0x6d
sete cl
cmp ebx, 1
sete dl
test dl, dl
jne 0x10058257
test cl, cl
jne 0x10058211
mov eax, edi
cmp al, 0x4d
sete al
test al, al
je 0x10057544
test cl, cl
je 0x1005753c
add ebp, 2
cmp dword [esp + 0x38], 0
je 0x100581ff
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c180
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 0x10056155
mov edx, edi
mov ecx, dword [esp + 0x60]
cmp dl, 0x30
sete dl
movzx edx, dl
jmp 0x1005746a
cmp eax, 2
je 0x100577da
mov dword [esp], 1
call fcn.100537d0
push ebx
mov dword [esp + 0x20], 0
jmp 0x10056607
add dword [ebx + 0x20], 1
jmp 0x1005731e
mov ebx, dword [esp + 0x90]
cmp dword [esp + 0x88], ebx
je 0x100582e3
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 0x100582d1
cmp dword [esp + 0x88], eax
je 0x100582d1
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 0x10056155
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 0x100578ad
cmp al, 0x64
sete al
mov edx, eax
test cl, cl
je 0x10057db1
test al, al
je 0x10057db1
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.1005d240
mov eax, ebx
mov edx, dword [eax]
add eax, 4
lea ecx, [edx - 0x1010101]
not edx
and ecx, edx
and ecx, 0x80808080
je 0x10057b72
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.10055ce0
sub esp, 0x10
mov edi, eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10057d13
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.10055690
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 0x10056155
mov dword [esp + 0x84], 0
mov ebx, dword [esp + 0x78]
lea eax, [ebp + 1]
test ebx, ebx
je 0x10057d4d
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 0x10056155
cmp al, 0x6d
je 0x100579a1
mov eax, edi
mov ecx, 1
cmp al, 0x74
jne 0x10058333
mov ebx, dword [esp + 0x38]
lea eax, [ecx + ebp - 1]
mov dword [esp + 0x3c], eax
lea ebp, [eax + 1]
test ebx, ebx
je 0x100583b8
fld qword [esp + 0x58]
xor ebx, ebx
mov esi, 0x10070a5d
mov edi, 0x74
mov dword [esp + 0x98], ecx
fstp qword [esp]
call fcn.1005c4a0
push edx
cmp eax, 0xb
mov eax, 0x10070a60
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 0x10056155
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 0x10057be6
test edx, edx
je 0x10057342
mov ebx, dword [esp + 0x268]
add edx, 3
mov dword [ebx + 0x28], edx
jmp 0x10057342
mov edx, dword [esp + 0x80]
cmp dword [esp + 0xb8], edx
je 0x100583f4
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 0x10056155
cmp ebx, 2
sete cl
test dl, cl
je 0x10057ecf
mov edi, dword [esp + 0x38]
add ebp, 2
test edi, edi
je 0x10057e99
fld qword [esp + 0x58]
mov edi, 0x64
fstp qword [esp]
call fcn.1005c1c0
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 0x10056155
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 0x10056155
cmp ebx, 4
jne 0x10057efb
test al, al
je 0x10057efb
lea eax, [ebp + 3]
add ebp, 4
cmp dword [esp + 0x38], 0
mov dword [esp + 0x3c], eax
je 0x10057eeb
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c140
push esi
push esi
mov dword [esp + 8], eax
mov dword [esp + 4], str._04d
jmp 0x10057594
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 0x10056155
cmp ebx, 1
mov eax, edi
sete dl
cmp al, 0x64
je 0x10057f19
lea eax, [edi - 0x6d]
cmp al, 1
jbe 0x100579cc
jmp 0x10057511
mov eax, dword [esp + 0x268]
add dword [eax + 0x34], 4
jmp 0x10057e2d
cmp dword [esp + 0x38], 0
je 0x10057f7b
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x3c], ebp
mov ebp, eax
jmp 0x1005648d
lea eax, [ebx - 3]
cmp eax, 1
jbe 0x10057ffa
mov eax, edi
cmp al, 0x4d
sete al
jne 0x10057544
test dl, dl
je 0x100579e3
cmp dword [esp + 0x38], 0
je 0x10057fb6
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c180
push esi
push esi
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x10070a65
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 0x10057a2c
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 0x10056155
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 0x10056155
fld qword [esp + 0x58]
mov dword [esp + 8], 1
fstp qword [esp]
call fcn.1005c200
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.1005ca80
lea edx, [ebx + ebp - 1]
sub esp, 0xc
cmp dword [esp + 0x38], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], edx
je 0x1005830f
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.10055690
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 0x10056155
mov ecx, 2
jmp 0x10057ca7
lea eax, [ebx - 3]
cmp eax, 1
ja 0x10057efb
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c180
push edx
push edx
xor edx, edx
cmp ebx, 3
sete dl
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.1005c560
push ecx
mov edi, eax
lea eax, [ebx + ebp - 1]
push ecx
cmp dword [esp + 0x38], 0
mov dword [esp + 0x3c], eax
je 0x10058493
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.10055690
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 0x10056155
add ebp, 2
cmp dword [esp + 0x38], 0
je 0x100581ce
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c4a0
push ecx
push ecx
mov esi, dword [esp + 0x268]
cmp dword [esi + 0x30], 0
je 0x1005818d
cmp byte [esp + 0x20], 0
jne 0x100584b3
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 0x10056155
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 0x10056155
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 2
jmp 0x10057fd1
add ebp, 2
cmp dword [esp + 0x38], 0
je 0x100582ab
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c4e0
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 0x1005658b
cmp dword [esp + 0x38], 0
je 0x100582bd
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c4e0
push edx
push edx
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x10070a65
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 0x1005824a
cmp ebx, 2
mov edi, 0x4d
sete cl
cmp ebx, 1
sete dl
jmp 0x10057511
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 2
jmp 0x10057f92
mov eax, dword [esp + 0x268]
add dword [eax + 0x34], 1
add dword [eax + 0x38], 1
jmp 0x10057f86
mov edx, dword [esp + 0x64]
mov dword [esp + 0x3c], ebp
add ebp, 1
mov ecx, edx
jmp 0x10057aed
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 0x10056155
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 0x1005805f
cmp al, 0x64
mov ebx, 1
sete dl
jne 0x10057db1
mov eax, dword [esp + 0x38]
test eax, eax
je 0x1005837f
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c1c0
sub esp, 8
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x10070a65
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov ecx, eax
lea eax, [ebp + 1]
jmp 0x1005828d
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 0x10056155
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 0x10056155
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 0x10057c6c
cmp dword [esp + 0x38], 0
je 0x10058473
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c4a0
push ebx
push ebx
mov esi, dword [esp + 0x268]
cmp dword [esi + 0x30], 0
je 0x10058447
cmp byte [esp + 0x20], 0
jne 0x1005853d
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x10070a65
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 0x100581aa
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 0x100581db
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 0x1005810f
cmp eax, 0xc
jle 0x1005854a
sub eax, 0xc
jmp 0x1005818d
cmp al, 0x73
jne 0x10057f25
test dl, dl
je 0x100585b2
cmp dword [esp + 0x38], 0
je 0x1005856e
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c520
push edx
push edx
lea esi, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x10070a65
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 0x10056155
cmp eax, 0xc
jle 0x1005855c
sub eax, 0xc
jmp 0x10058447
test eax, eax
jne 0x1005818d
mov eax, 0xc
jmp 0x1005818d
test eax, eax
jne 0x10058447
mov eax, 0xc
jmp 0x10058447
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 0x10056155
test cl, cl
je 0x10057f25
add ebp, 2
cmp dword [esp + 0x38], 0
je 0x100585f4
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.1005c520
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 0x10058514
mov eax, dword [esp + 0x268]
xor ebx, ebx
add dword [eax + 0x34], 2
jmp 0x10058589