Function at 0x10002ea0
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
push edi
mov ecx, 9
push esi
push ebx
sub esp, 0x40c
lea eax, [esp + 0x428]
mov ebx, dword [esp + 0x424]
lea edi, [esp + 0xd8]
mov edx, dword [esp + 0x420]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], eax
xor eax, eax
rep stosd dword es:[edi], eax
movzx eax, byte [ebx]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf8], 0x10002c80
test al, al
je 0x10002f81
mov esi, dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x50], esi
cmp al, 0x20
je 0x10002f93
lea edx, [eax - 9]
cmp dl, 4
jbe 0x10002f93
cmp al, 0x25
je 0x10003052
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
mov dword [esp + 0xec], 0
sub edx, eax
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0xe4]
cmp eax, edx
mov dword [esp + 0xe8], edx
je 0x100031dd
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
movzx edx, byte [ebx]
cmp edx, eax
je 0x10003170
test eax, eax
js case.0x100030c1.1
jmp 0x10002f81
fstp st(0)
mov eax, dword [esp + 0x28]
add esp, 0x40c
pop ebx
pop esi
pop edi
pop ebp
ret
add ebx, 1
movzx eax, byte [ebx + 1]
cmp al, 0x20
je 0x10002f90
sub eax, 9
cmp al, 4
jbe 0x10002f90
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xdc]
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], ecx
sub edx, eax
cmp eax, ecx
mov dword [esp + 0xf0], edx
je 0x10003036
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
cmp eax, 0x20
je 0x10003030
sub eax, 9
cmp eax, 4
jbe 0x10003030
test ecx, ecx
je 0x10002ffe
sub edx, 1
mov dword [esp + 0xe0], edx
sub edx, dword [esp + 0xdc]
mov ebp, ebx
add edx, dword [esp + 0xf0]
add dword [esp + 0x1c], edx
movzx eax, byte [ebp + 1]
lea ebx, [ebp + 1]
test al, al
jne 0x10002f11
jmp 0x10002f81
mov eax, edx
cmp eax, ecx
jne 0x10002fd6
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xe0]
jmp 0x10002fe3
movzx eax, byte [ebx + 1]
cmp al, 0x25
je 0x100030f1
cmp al, 0x2a
je 0x100031b8
movzx edx, al
sub edx, 0x30
cmp edx, 9
jbe 0x10003190
mov edi, dword [esp + 0x2c]
lea ecx, [ebx + 1]
mov esi, dword [edi]
add edi, 4
mov dword [esp + 0x2c], edi
mov dword [esp + 0x54], esi
cmp edx, 9
ja 0x10003c5f
xor ebx, ebx
lea edx, [ebx + ebx*4]
add ecx, 1
lea ebx, [eax + edx*2 - 0x30]
movzx eax, byte [ecx]
lea esi, [eax - 0x30]
mov edx, eax
cmp esi, 9
jbe 0x10003094
cmp dl, 0x6d
je 0x100031d1
lea eax, [edx - 0x41]
lea ebp, [ecx + 1]
cmp al, 0x39
ja case.0x100030c1.1
movzx eax, al
jmp dword [eax*4 + 0x100d604c]
mov edi, dword [esp + 0x28]
mov eax, 0xffffffff
test edi, edi
cmovne eax, edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add esp, 0x40c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
add ebx, 1
mov dword [esp + 0xec], 0
sub edx, eax
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0xe4]
cmp eax, edx
mov dword [esp + 0xe8], edx
je 0x10003160
nop
lea esi, [esi]
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
cmp eax, 0x20
je 0x1000314e
lea edx, [eax - 9]
cmp edx, 4
ja 0x10002f6a
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xe8]
cmp eax, edx
jne 0x10003130
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x1000313d
mov eax, dword [esp + 0xe0]
sub eax, dword [esp + 0xdc]
mov ebp, ebx
add eax, dword [esp + 0xf0]
add dword [esp + 0x1c], eax
jmp 0x10003012
cmp byte [ebx + 2], 0x24
jne 0x10003075
mov eax, dword [esp + 0x2c]
call fcn.10002cf0
movzx edx, byte [ebx + 3]
mov dword [esp + 0x54], eax
lea ecx, [ebx + 3]
mov eax, edx
sub edx, 0x30
jmp 0x10003089
movzx edx, byte [ebx + 2]
lea ecx, [ebx + 2]
mov dword [esp + 0x54], 0
mov eax, edx
sub edx, 0x30
jmp 0x10003089
movzx edx, byte [ecx + 1]
add ecx, 1
jmp 0x100030b4
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x10002f6a
movzx edx, byte [ecx + 1]
mov eax, edx
and eax, 0x2f
cmp al, 3
je 0x10003429
movzx eax, dl
cmp dl, 0x63
mov dword [esp + 0x58], eax
je 0x10003a57
cmp dl, 0x6e
je 0x10003bf5
cmp dl, 0x5b
je 0x10003df4
mov dword [esp + 0x78], 1
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0xec], 0
sub edx, eax
mov dword [esp + 0xf0], edx
mov dword [esp + 0xe8], ecx
lea esi, [esi]
cmp eax, ecx
je 0x10003aca
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
cmp eax, 0x20
je 0x10003a30
sub eax, 9
cmp eax, 4
jbe 0x10003a30
test ecx, ecx
je 0x10003298
sub edx, 1
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0xdc]
mov ecx, edx
sub ecx, eax
add ecx, dword [esp + 0xf0]
add dword [esp + 0x1c], ecx
sub eax, edx
test ebx, ebx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], eax
jne 0x10003a87
mov esi, dword [esp + 0xe4]
mov dword [esp + 0xe8], esi
cmp edx, esi
je 0x100044aa
add edx, 1
mov dword [esp + 0xe0], edx
test esi, esi
je 0x100032f2
sub dword [esp + 0xe0], 1
mov eax, dword [esp + 0x58]
sub eax, 0x41
cmp eax, 0x37
ja case.0x10003302.66
jmp dword [eax*4 + 0x100d6134]
mov eax, edx
and eax, 0x2f
cmp al, 3
je 0x10004193
movzx eax, dl
cmp dl, 0x63
mov dword [esp + 0x58], eax
je 0x10004201
cmp dl, 0x6e
je 0x100044ca
cmp dl, 0x5b
je 0x1000422c
mov ebp, ecx
mov dword [esp + 0x78], 0
jmp 0x10003229
movzx edx, byte [ecx + 1]
mov eax, edx
and eax, 0x2f
cmp al, 3
je 0x10003429
movzx eax, dl
cmp dl, 0x63
mov dword [esp + 0x58], eax
je 0x1000435e
cmp dl, 0x6e
je 0x10003012
cmp dl, 0x5b
je 0x10004351
mov dword [esp + 0x78], 2
jmp 0x10003229
movzx edx, byte [ecx + 1]
cmp dl, 0x68
je 0x100040eb
mov eax, edx
and eax, 0x2f
cmp al, 3
je 0x10003429
movzx eax, dl
cmp dl, 0x63
mov dword [esp + 0x58], eax
je 0x100043a9
cmp dl, 0x6e
je 0x10004210
cmp dl, 0x5b
je 0x1000439c
mov dword [esp + 0x78], 0xffffffff
jmp 0x10003229
movzx edx, byte [ecx + 1]
mov eax, edx
and eax, 0x2f
cmp al, 3
je 0x10003429
movzx eax, dl
cmp dl, 0x63
mov dword [esp + 0x58], eax
je 0x100041f4
cmp dl, 0x6e
je 0x10003e0f
cmp dl, 0x5b
je 0x100041e7
mov dword [esp + 0x78], 3
jmp 0x10003229
movzx edx, byte [ecx + 1]
cmp dl, 0x6c
jne 0x100031f2
movzx edx, byte [ecx + 2]
lea ebp, [ecx + 2]
mov eax, edx
and eax, 0x2f
cmp al, 3
jne 0x100033dd
or edx, 0x20
movzx eax, dl
cmp dl, 0x63
mov dword [esp + 0x58], eax
je 0x10003a57
cmp dl, 0x6e
je 0x10003bf5
cmp dl, 0x5b
jne 0x10003221
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
mov dword [esp + 0xec], ebx
mov esi, dword [esp + 0xe4]
sub edx, eax
test ebx, ebx
mov dword [esp + 0xf0], edx
jne 0x10003c29
cmp eax, esi
mov dword [esp + 0xe8], esi
je 0x1000436b
add eax, 1
test esi, esi
mov dword [esp + 0x78], 1
mov dword [esp + 0xe0], eax
jne 0x100032ea
jmp dword [0x100d627c]
mov eax, dword [esp + 0x58]
and eax, 0xffffffef
cmp eax, 0x63
je 0x1000423b
movzx eax, byte [ebp + 1]
lea edx, [ebp + 1]
cmp al, 0x5e
je 0x10004451
mov ebp, eax
mov byte [esp + 0x20], 1
xor eax, eax
lea edi, [esp + 0x100]
lea ecx, [esp + 0xff]
imul eax, eax, 0x1010101
sub ecx, edi
add ecx, 0x101
shr ecx, 2
mov dword [esp + 0xff], eax
mov dword [esp + 0x1fc], eax
rep stosd dword es:[edi], eax
mov eax, ebp
mov byte [esp + 0xff], 0
cmp al, 0x2d
je 0x10004432
mov eax, ebp
cmp al, 0x5d
je 0x1000473e
test al, al
je case.0x100030c1.1
movzx ecx, byte [esp + 0x20]
mov dword [esp + 0x40], ebx
movzx ebp, byte [esp + 0x20]
imul edi, ecx, 0x1010101
mov dword [esp + 0x78], edi
jmp 0x1000355e
movzx ebx, byte [edx]
mov ecx, ebp
add edx, 1
cmp al, 0x5d
mov byte [esp + ebx + 0x100], cl
je 0x10004348
test al, al
je case.0x100030c1.1
cmp al, 0x2d
movzx eax, byte [edx + 1]
jne 0x1000353f
test al, al
je 0x1000353f
cmp al, 0x5d
je 0x1000353f
lea edi, [edx + 1]
movzx ebx, al
mov dword [esp + 0x20], edi
movzx edi, byte [edx - 1]
cmp edi, ebx
jge 0x100035ae
mov ecx, ebx
lea eax, [esp + edi + 0x100]
sub ecx, edi
cmp ecx, 4
mov dword [esp + 0x30], ecx
mov edi, ecx
jae 0x1000419a
test ecx, ecx
je 0x100035ae
movzx ecx, byte [esp + 0x78]
and edi, 2
mov byte [eax], cl
jne 0x10004944
movzx eax, byte [edx + 2]
mov edx, dword [esp + 0x20]
jmp 0x10003542
mov eax, dword [esp + 0xe0]
mov byte [esp + 0x20], 0
mov ebx, 8
mov dword [esp + 0x30], 8
mov dword [esp + 0x58], 0x6f
cmp eax, esi
je 0x10003aa9
lea edi, [eax + 1]
mov dword [esp + 0xe0], edi
movzx ecx, byte [eax]
cmp ecx, 0x20
je 0x10003a20
lea eax, [ecx - 9]
cmp eax, 4
jbe 0x10003a20
lea eax, [ecx - 0x2b]
and eax, 0xfffffffd
jne 0x10003a4a
xor eax, eax
cmp ecx, 0x2d
sete al
neg eax
cmp edi, esi
mov dword [esp + 0x70], eax
je 0x10004702
lea eax, [edi + 1]
mov dword [esp + 0xe0], eax
movzx ecx, byte [edi]
mov edi, eax
cmp ecx, 0x30
jne 0x1000364c
cmp byte [esp + 0x20], 0
jne 0x1000414d
test ebx, ebx
je 0x10003ae9
movzx eax, byte [ecx + 0x100d6501]
cmp eax, dword [esp + 0x30]
jae 0x10003af6
cmp dword [esp + 0x30], 0xa
je 0x10003e41
mov edx, dword [esp + 0x30]
lea eax, [edx - 1]
test edx, eax
je 0x10003f7c
mov eax, ecx
xor ebx, ebx
mov ecx, edx
jmp 0x10003696
lea edx, [edi + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [edi]
mov edi, edx
movzx edx, byte [eax + 0x100d6501]
cmp ebx, 0x71c71c6
mov eax, edx
ja 0x10003c68
cmp edx, ecx
jae 0x10003c68
imul ebx, ecx
add ebx, edx
cmp edi, esi
jne 0x10003687
lea eax, [esp + 0xd8]
mov dword [esp + 0x20], ecx
call fcn.10002ba0
mov edi, dword [esp + 0xe0]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esp + 0x20]
jmp 0x10003696
mov eax, dword [esp + 0xe0]
mov byte [esp + 0x20], 1
xor ebx, ebx
mov dword [esp + 0x30], 0
mov dword [esp + 0x58], 0x69
jmp 0x100035e1
mov eax, dword [esp + 0xe0]
mov byte [esp + 0x20], 0
mov ebx, 0xa
mov dword [esp + 0x30], 0xa
jmp 0x100035e1
mov eax, dword [esp + 0xe0]
mov byte [esp + 0x20], 1
mov ebx, 0x10
mov dword [esp + 0x30], 0x10
jmp 0x100035e1
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x98], 0x400
mov dword [esp + 0x88], 0x3fc
mov dword [esp + 0xc0], 0x219
mov dword [esp + 0x90], 0xfffffbce
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0xbc], 0x35
mov dword [esp + 0x7c], 0xfffffb64
mov dword [esp + 0xb8], 0x432
mov dword [esp + 0x70], 0xfffffbce
mov dword [esp + 0x60], 0x35
cmp eax, esi
je 0x10003de3
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
cmp eax, 0x20
je 0x10003a37
lea edx, [eax - 9]
cmp edx, 4
jbe 0x10003a37
lea edx, [eax - 0x2b]
and edx, 0xfffffffd
jne 0x10003c10
cmp eax, 0x2d
je 0x100046e7
fld dword [0x100d6608]
fld1
fstp xword [esp + 0x40]
fld xword [esp + 0x40]
fstp qword [esp + 0x68]
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0xe8]
je 0x10004957
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
mov edx, eax
or edx, 0x20
cmp edx, 0x69
jne 0x100044e7
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe8]
cmp eax, ecx
je 0x10004840
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
or eax, 0x20
cmp eax, 0x6e
jne 0x10004818
mov eax, dword [esp + 0xe0]
cmp eax, ecx
je 0x100047f8
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
or eax, 0x20
cmp eax, 0x66
jne 0x1000481c
mov eax, dword [esp + 0xe0]
cmp eax, ecx
je 0x100048ba
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
or eax, 0x20
cmp eax, 0x69
jne 0x100040b4
cmp edx, ecx
je 0x10004772
lea eax, [edx + 1]
mov dword [esp + 0xe0], eax
movzx eax, byte [edx]
or eax, 0x20
cmp eax, 0x6e
jne 0x10004820
mov eax, dword [esp + 0xe0]
cmp eax, ecx
je 0x10004752
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
or eax, 0x20
cmp eax, 0x69
jne 0x10004824
mov eax, dword [esp + 0xe0]
cmp eax, ecx
je 0x1000488d
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
or eax, 0x20
cmp eax, 0x74
jne 0x10004828
mov eax, dword [esp + 0xe0]
cmp eax, ecx
je 0x1000486d
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
or eax, 0x20
mov ecx, dword [esp + 0xe8]
cmp eax, 0x79
jne 0x1000482c
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xdc]
sub edx, ecx
add eax, edx
je 0x10002f7f
mov esi, dword [esp + 0x54]
test esi, esi
je 0x10003f71
mov edi, dword [esp + 0x78]
cmp edi, 1
je 0x10004640
cmp edi, 2
je 0x10004427
test edi, edi
jne 0x100039b2
mov edi, dword [esp + 0x54]
fstp dword [edi]
jmp case.0x10003b9e.2
fstp st(0)
add dword [esp + 0x1c], eax
add dword [esp + 0x28], 1
jmp 0x10003012
mov eax, dword [esp + 0xe0]
sub eax, dword [esp + 0xdc]
add eax, dword [esp + 0xf0]
mov ebx, dword [esp + 0x54]
add dword [esp + 0x1c], eax
test ebx, ebx
jne 0x100039b8
jmp 0x10003012
mov eax, dword [esp + 0x78]
test eax, eax
je 0x100043b6
js 0x10003a03
cmp eax, 2
jle 0x1000375f
jmp 0x10003a03
fstp st(0)
mov eax, dword [esp + 0xf0]
mov edx, dword [esp + 0xe0]
fldz
mov ecx, dword [esp + 0xdc]
jmp 0x1000397a
mov eax, edi
jmp 0x100035e1
mov eax, edx
jmp 0x10003260
mov eax, dword [esp + 0xe0]
mov esi, dword [esp + 0xe8]
jmp 0x100037cb
mov dword [esp + 0x70], 0
jmp 0x1000363c
mov dword [esp + 0x78], 1
test ebx, ebx
mov eax, 1
mov edx, dword [esp + 0xe0]
cmovle ebx, eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xec], ebx
sub eax, edx
mov dword [esp + 0xf0], eax
mov esi, dword [esp + 0xe4]
mov eax, esi
sub eax, edx
cmp eax, ebx
jle 0x100032cd
lea esi, [edx + ebx]
mov dword [esp + 0xe8], esi
jmp 0x100032d4
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov edi, dword [esp + 0xe0]
mov ecx, eax
mov esi, dword [esp + 0xe8]
jmp 0x100035f6
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xe0]
jmp 0x10003275
cmp byte [ecx + 0x100d6501], 9
jbe 0x10003e41
test esi, esi
je 0x10003b04
sub edi, 1
mov dword [esp + 0xe0], edi
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xec], 0
xor ebx, ebx
sub eax, edi
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xe8], eax
call dword [sym.imp.msvcrt.dll__errno]
mov edx, dword [esp + 0xdc]
mov dword [eax], 0x16
xor ecx, ecx
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0xe0]
sub eax, edx
add eax, esi
je 0x10002f81
cmp dword [esp + 0x58], 0x70
jne 0x10003b82
mov edi, dword [esp + 0x54]
test edi, edi
je 0x10003b82
mov dword [edi], ecx
mov eax, dword [esp + 0xe0]
sub eax, dword [esp + 0xdc]
add eax, esi
jmp case.0x10003b9e.2
mov edx, dword [esp + 0x54]
test edx, edx
je 0x10003f73
mov edx, dword [esp + 0x78]
add edx, 2
cmp edx, 5
ja case.0x10003b9e.2
jmp dword [edx*4 + 0x100d62f4]
mov esi, dword [esp + 0x54]
mov dword [esi], ecx
mov dword [esi + 4], ebx
jmp case.0x10003b9e.2
mov edi, dword [esp + 0x54]
mov dword [edi], ecx
jmp case.0x10003b9e.2
mov esi, dword [esp + 0x54]
mov dword [esi], ecx
jmp case.0x10003b9e.2
mov edi, dword [esp + 0x54]
mov word [edi], cx
jmp case.0x10003b9e.2
mov eax, dword [esp + 0x54]
mov byte [eax], cl
mov eax, dword [esp + 0xe0]
sub eax, dword [esp + 0xdc]
add eax, dword [esp + 0xf0]
jmp case.0x10003b9e.2
mov esi, dword [esp + 0x54]
test esi, esi
je 0x10003012
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x1c]
mov dword [eax], edi
jmp 0x10003012
fld1
fstp xword [esp + 0x40]
fld xword [esp + 0x40]
fstp qword [esp + 0x68]
fld dword [0x100d6608]
jmp 0x1000383f
mov edx, esi
sub edx, eax
cmp edx, ebx
jle 0x1000347b
lea esi, [eax + ebx]
cmp esi, eax
mov dword [esp + 0xe8], esi
je 0x1000436b
test esi, esi
jne case.0x10003302.91
add eax, 1
mov dword [esp + 0xe0], eax
jmp dword [0x100d6374]
mov edx, eax
xor ebx, ebx
jmp 0x100030ab
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], ecx
jmp 0x10003cf9
ja 0x10003c92
cmp eax, dword [esp + 0x20]
jb 0x10003d43
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x24], 0
imul ecx, eax
mov eax, dword [esp + 0x40]
imul eax, edx
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], ebx
mul dword [esp + 0x40]
not ebx
add edx, ecx
cmp edx, 0xffffffff
jb 0x10003ccb
cmp eax, ebx
ja 0x10003d43
add eax, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
cmp edi, esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
je 0x1000412e
lea edx, [edi + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [edi]
mov edi, edx
movzx eax, byte [eax + 0x100d6501]
movzx ebx, al
cmp ebx, dword [esp + 0x30]
jae 0x10003db0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.100abb30
cmp edx, dword [esp + 0x24]
jb 0x10003d43
jmp 0x10003c86
mov edi, dword [esp + 0xe0]
mov esi, dword [esp + 0xe8]
cmp edi, esi
je 0x10003e30
lea eax, [edi + 1]
mov dword [esp + 0xe0], eax
movzx eax, byte [edi]
movzx eax, byte [eax + 0x100d6501]
cmp eax, dword [esp + 0x30]
jb 0x10003d35
call dword [sym.imp.msvcrt.dll__errno]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0xe0]
mov ecx, 0xffffffff
mov dword [eax], 0x22
mov ebx, 0xffffffff
test esi, esi
je 0x10003d97
sub edi, 1
mov dword [esp + 0xe0], edi
mov esi, dword [esp + 0xf0]
mov eax, edi
mov edx, dword [esp + 0xdc]
jmp 0x10003b52
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, ecx
xor ecx, dword [esp + 0x20]
cdq
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x24]
xor ecx, edx
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
sub ecx, eax
sbb ebx, edx
jmp 0x10003d89
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x100037e0
mov dword [esp + 0x78], 1
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xe0]
jmp 0x100032ae
mov edi, dword [esp + 0x54]
test edi, edi
je 0x10003012
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x1c]
mov dword [eax], edi
sar edi, 0x1f
mov dword [eax + 4], edi
jmp 0x10003012
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x10003d58
xor edx, edx
jmp 0x10003e54
lea eax, [edi + 1]
mov dword [esp + 0xe0], eax
movzx ecx, byte [edi]
mov edi, eax
lea ebx, [ecx - 0x30]
cmp ebx, 9
ja 0x10003e95
cmp edx, 0x19999998
ja 0x10003e95
lea eax, [edx + edx*4]
cmp edi, esi
lea edx, [ecx + eax*2 - 0x30]
jne 0x10003e45
lea eax, [esp + 0xd8]
mov dword [esp + 0x20], edx
call fcn.10002ba0
mov edi, dword [esp + 0xe0]
mov ecx, eax
mov esi, dword [esp + 0xe8]
mov edx, dword [esp + 0x20]
jmp 0x10003e54
mov dword [esp + 0x40], ebp
mov dword [esp + 0x20], edx
mov ebp, esi
mov dword [esp + 0x24], 0
jmp 0x10003f0b
jb 0x10003eb2
cmp eax, 0x99999999
ja 0x10003f24
imul esi, dword [esp + 0x24], 0xa
mov eax, 0xa
mov dword [esp + 0x30], ebx
mul dword [esp + 0x20]
add edx, esi
mov esi, ebx
not ebx
sar esi, 0x1f
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x34]
not esi
cmp edx, esi
jb 0x10003ee1
ja 0x10003f24
cmp eax, ebx
ja 0x10003f24
add eax, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
cmp edi, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
je 0x100041c6
lea eax, [edi + 1]
mov dword [esp + 0xe0], eax
movzx ecx, byte [edi]
mov edi, eax
lea ebx, [ecx - 0x30]
cmp ebx, 9
ja 0x10004467
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
cmp edx, 0x19999999
jbe 0x10003ea9
cmp byte [ecx + 0x100d6501], 9
mov esi, ebp
mov ebp, dword [esp + 0x40]
jbe 0x10004860
mov ecx, dword [esp + 0x70]
mov eax, ecx
xor ecx, dword [esp + 0x20]
cdq
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x24]
xor ecx, edx
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xac]
sub ecx, eax
sbb ebx, edx
jmp 0x10003d89
mov ebp, edx
jmp 0x10003f73
fstp st(0)
add dword [esp + 0x1c], eax
jmp 0x10003012
imul eax, dword [esp + 0x30], 0x17
movzx edx, byte [ecx + 0x100d6501]
shr eax, 5
and eax, 7
movsx eax, byte [eax + 0x100d6040]
mov dword [esp + 0x20], ebp
xor ebx, ebx
mov ecx, eax
mov dword [esp + 0x68], eax
mov eax, esi
mov ebp, ecx
mov esi, dword [esp + 0x30]
jmp 0x10003fc1
lea edx, [edi + 1]
mov dword [esp + 0xe0], edx
movzx ecx, byte [edi]
mov edi, edx
movzx edx, byte [ecx + 0x100d6501]
cmp ebx, 0x7ffffff
ja 0x10003ff5
cmp edx, esi
jae 0x10003ff5
mov ecx, ebp
shl ebx, cl
or ebx, edx
cmp edi, eax
jne 0x10003fab
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov edi, dword [esp + 0xe0]
mov ecx, eax
mov eax, dword [esp + 0xe8]
jmp 0x10003fba
movzx ecx, byte [esp + 0x68]
mov esi, eax
mov dword [esp + 0x7c], edx
mov eax, 0xffffffff
mov edx, 0xffffffff
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x20], ebx
xor ebx, ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x40], esi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
cmovne edx, ebx
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x60], eax
lea esi, [esi]
cmp edx, dword [esp + 0x30]
jae 0x10003dac
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
cmp ebx, eax
jb 0x1000406d
ja 0x10004064
mov eax, dword [esp + 0x60]
cmp ecx, eax
jbe 0x1000406d
mov esi, dword [esp + 0x40]
jmp 0x10003d43
movzx ecx, byte [esp + 0x68]
mov ebx, dword [esp + 0x20]
xor eax, eax
mov esi, dword [esp + 0x24]
shld esi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne esi, ebx
cmovne ebx, eax
mov ecx, ebx
mov dword [esp + 0x24], esi
or edx, ecx
cmp edi, dword [esp + 0x40]
mov dword [esp + 0x20], edx
je 0x100040cb
lea edx, [edi + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [edi]
mov edi, edx
movzx edx, byte [eax + 0x100d6501]
jmp 0x10004040
test ecx, ecx
je 0x1000396c
sub edx, 1
mov dword [esp + 0xe0], edx
jmp 0x1000396c
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0xe0]
mov dword [esp + 0x40], esi
jmp 0x100040ab
movzx edx, byte [ecx + 2]
lea ebp, [ecx + 2]
mov eax, edx
and eax, 0x2f
cmp al, 3
je 0x10003429
movzx eax, dl
cmp dl, 0x63
mov dword [esp + 0x58], eax
je 0x100048ad
cmp dl, 0x6e
je 0x10004723
cmp dl, 0x5b
je 0x100048e1
mov dword [esp + 0x78], 0xfffffffe
jmp 0x10003229
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov edi, dword [esp + 0xe0]
mov esi, dword [esp + 0xe8]
jmp 0x10003cf2
cmp esi, edi
je 0x10005671
lea eax, [edi + 1]
mov dword [esp + 0xe0], eax
movzx ecx, byte [edi]
mov edx, ecx
or edx, 0x20
cmp edx, 0x78
je 0x1000467e
test ebx, ebx
jne 0x100044a3
mov edi, eax
movzx edx, byte [ecx + 0x100d6501]
mov eax, 5
mov dword [esp + 0x30], 8
jmp 0x10003f8e
mov ebp, ecx
jmp 0x10003429
mov edi, dword [esp + 0x78]
mov dword [eax], edi
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x78], edi
mov dword [eax + ecx - 4], edi
lea edi, [eax + 4]
and edi, 0xfffffffc
sub eax, edi
add eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x78]
shr ecx, 2
rep stosd dword es:[edi], eax
jmp 0x100035ae
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov edi, dword [esp + 0xe0]
mov ecx, eax
mov ebp, dword [esp + 0xe8]
jmp 0x10003f08
mov dword [esp + 0x78], 3
jmp 0x10003dfc
mov dword [esp + 0x78], 3
jmp 0x10003a5f
mov ebp, ecx
mov dword [esp + 0x78], 0
jmp 0x10003a5f
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x1c]
test ecx, ecx
je 0x10003012
mov edi, dword [esp + 0x54]
mov word [edi], ax
jmp 0x10003012
mov ebp, ecx
mov dword [esp + 0x78], 0
jmp 0x10003dfc
lea edi, [esp + 0x100]
mov ecx, 0x40
mov eax, 0xffffffff
mov dword [esp + 0xff], 0xffffffff
mov dword [esp + 0x1fc], 0xffffffff
rep stosd dword es:[edi], eax
mov byte [esp + 0xff], 0
cmp dword [esp + 0x58], 0x73
je 0x100047c3
mov esi, dword [esp + 0xe8]
mov edx, ebp
mov eax, dword [esp + 0x54]
test eax, eax
je 0x1000464b
xor edi, edi
mov ebp, eax
jmp 0x100042a0
add edi, 1
mov byte [ebp + edi - 1], al
mov esi, dword [esp + 0xe8]
mov eax, dword [esp + 0xe0]
cmp eax, esi
je 0x1000432f
lea ecx, [eax + 1]
mov dword [esp + 0xe0], ecx
movzx eax, byte [eax]
cmp byte [esp + eax + 0x100], 0
jne 0x10004292
mov esi, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe0]
test esi, esi
je 0x100042e2
sub ecx, 1
mov dword [esp + 0xe0], ecx
mov eax, ecx
sub eax, dword [esp + 0xdc]
add eax, dword [esp + 0xf0]
je 0x10002f81
cmp dword [esp + 0x58], 0x63
je 0x10004631
mov esi, dword [esp + 0x54]
test esi, esi
je 0x10003f6d
mov byte [esi + edi], 0
mov eax, dword [esp + 0xe0]
mov ebp, edx
sub eax, dword [esp + 0xdc]
add eax, dword [esp + 0xf0]
jmp case.0x10003b9e.2
lea eax, [esp + 0xd8]
mov dword [esp + 0x20], edx
call fcn.10002ba0
mov edx, dword [esp + 0x20]
jmp 0x100042bc
mov ebx, dword [esp + 0x40]
jmp 0x10004280
mov dword [esp + 0x78], 2
jmp 0x10003dfc
mov dword [esp + 0x78], 2
jmp 0x10003a5f
lea eax, [esp + 0xd8]
call fcn.10002ba0
test eax, eax
js case.0x100030c1.1
mov esi, dword [esp + 0xe8]
test esi, esi
je 0x100034a4
sub dword [esp + 0xe0], 1
jmp dword [0x100d6454]
mov dword [esp + 0x78], 0xffffffff
jmp 0x10003dfc
mov dword [esp + 0x78], 0xffffffff
jmp 0x10003a5f
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x98], pe_nt_image_headers32
mov dword [esp + 0x88], 0x7c
mov dword [esp + 0xc0], 0x4a
mov dword [esp + 0x90], 0xffffff6b
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0xbc], 0x18
mov dword [esp + 0x7c], 0xffffff01
mov dword [esp + 0xb8], 0x95
mov dword [esp + 0x70], 0xffffff6b
mov dword [esp + 0x60], 0x18
jmp 0x100037cb
mov edi, dword [esp + 0x54]
fstp qword [edi]
jmp case.0x10003b9e.2
movzx eax, byte [esp + 0x20]
add edx, 1
mov byte [esp + 0x12d], al
movzx eax, byte [edx]
cmp al, 0x5d
jne 0x1000351d
jmp 0x10004280
lea edx, [ebp + 2]
mov byte [esp + 0x20], 0
movzx ebp, byte [ebp + 2]
mov eax, 1
jmp 0x100034d2
mov ecx, dword [esp + 0x70]
mov esi, ebp
mov ebp, dword [esp + 0x40]
mov eax, ecx
xor ecx, dword [esp + 0x20]
cdq
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x24]
xor ecx, edx
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
sub ecx, eax
sbb ebx, edx
jmp 0x10003d89
mov edi, eax
jmp 0x10003665
lea eax, [esp + 0xd8]
call fcn.10002ba0
test eax, eax
js case.0x100030c1.1
mov esi, dword [esp + 0xe8]
jmp 0x100032e6
mov ebx, dword [esp + 0x54]
test ebx, ebx
je 0x10004970
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x1c]
mov ebp, ecx
mov dword [eax], edi
jmp 0x10003012
fstp st(0)
cmp edx, 0x6e
jne 0x10004977
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe8]
cmp eax, ecx
je 0x100056aa
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
or eax, 0x20
cmp eax, 0x61
jne 0x1000482e
mov eax, dword [esp + 0xe0]
cmp eax, ecx
je 0x10005692
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
or eax, 0x20
cmp eax, 0x6e
jne 0x1000482e
mov eax, dword [esp + 0xe0]
cmp eax, ecx
je 0x1000491f
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
cmp byte [eax], 0x28
setne al
test al, al
je 0x100045a1
test ecx, ecx
je 0x1000457a
sub edx, 1
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xdc]
fld dword [0x100d6614]
jmp 0x1000397a
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe8]
cmp edx, ecx
je 0x1000490e
lea eax, [edx + 1]
mov dword [esp + 0xe0], eax
movzx eax, byte [edx]
mov edx, eax
and edx, 0xffffffdf
sub edx, 0x41
cmp edx, 0x19
jbe 0x10004593
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x10004593
cmp eax, 0x5f
je 0x10004593
cmp eax, 0x29
je 0x100048ee
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x100045ec
sub dword [esp + 0xe0], 1
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], 0x16
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xe0]
mov dword [esp + 0xec], 0
mov ebx, dword [esp + 0xe4]
mov eax, ecx
fldz
sub eax, edx
mov dword [esp + 0xf0], eax
mov dword [esp + 0xe8], ebx
jmp 0x1000397a
cmp eax, ebx
jne 0x10002f81
mov ebp, edx
jmp 0x100039d7
mov esi, dword [esp + 0x54]
fstp qword [esi]
jmp case.0x10003b9e.2
mov ecx, dword [esp + 0xe0]
mov ebp, edx
cmp ecx, esi
je 0x100047a4
lea edi, [ecx + 1]
mov dword [esp + 0xe0], edi
movzx eax, byte [ecx]
mov ecx, edi
cmp byte [esp + eax + 0x100], 0
jne 0x10004654
mov edx, ebp
xor edi, edi
jmp 0x100042d4
cmp eax, esi
je 0x10005652
lea edi, [eax + 1]
mov dword [esp + 0xe0], edi
movzx eax, byte [eax]
movzx edx, byte [eax + 0x100d6501]
cmp dl, 0xf
jbe 0x10004792
test esi, esi
je 0x100046b1
sub edi, 1
mov dword [esp + 0xe0], edi
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe4]
mov eax, edi
mov dword [esp + 0xec], 0
xor ebx, ebx
mov esi, edx
mov dword [esp + 0xe8], ecx
xor ecx, ecx
sub esi, edi
mov dword [esp + 0xf0], esi
jmp 0x10003b52
fld dword [0x100d6604]
fld1
fchs
fstp xword [esp + 0x40]
fld xword [esp + 0x40]
fstp qword [esp + 0x68]
jmp 0x1000381e
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov esi, dword [esp + 0xe8]
mov ecx, eax
mov edi, dword [esp + 0xe0]
jmp 0x1000363c
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x1c]
test edx, edx
je 0x10003012
mov edi, dword [esp + 0x54]
mov byte [edi], al
jmp 0x10003012
movzx eax, byte [esp + 0x20]
add edx, 1
mov byte [esp + 0x15d], al
jmp 0x10004441
fstp qword [esp + 0x20]
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov ecx, dword [esp + 0xe8]
fld qword [esp + 0x20]
jmp 0x10003909
fstp qword [esp + 0x20]
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov ecx, dword [esp + 0xe8]
fld qword [esp + 0x20]
jmp 0x100038e1
mov eax, 3
mov dword [esp + 0x30], 0x10
jmp 0x10003f8e
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov esi, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe0]
jmp 0x1000466b
mov byte [esp + 0x109], 0
mov byte [esp + 0x10a], 0
mov byte [esp + 0x10b], 0
mov byte [esp + 0x10c], 0
mov byte [esp + 0x10d], 0
mov byte [esp + 0x120], 0
jmp 0x10004277
fstp qword [esp + 0x20]
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov ecx, dword [esp + 0xe8]
fld qword [esp + 0x20]
jmp 0x10003898
fstp st(0)
jmp 0x1000482e
fstp st(0)
jmp 0x1000482e
fstp st(0)
jmp 0x1000482e
fstp st(0)
jmp 0x1000482e
fstp st(0)
jmp 0x1000482e
fstp st(0)
test ecx, ecx
jne 0x100045e4
jmp 0x100045ec
fstp qword [esp + 0x20]
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov ecx, dword [esp + 0xe8]
fld qword [esp + 0x20]
jmp 0x10003870
mov dword [esp + 0x30], 0xa
jmp 0x10003d43
fstp qword [esp + 0x20]
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov edx, dword [esp + 0xe0]
fld qword [esp + 0x20]
jmp 0x10003959
fstp qword [esp + 0x20]
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov ecx, dword [esp + 0xe8]
fld qword [esp + 0x20]
jmp 0x10003931
mov dword [esp + 0x78], 0xfffffffe
jmp 0x10003a5f
fstp qword [esp + 0x20]
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe8]
fld qword [esp + 0x20]
jmp 0x100038c0
mov dword [esp + 0x78], 0xfffffffe
jmp 0x10003dfc
mov eax, dword [esp + 0xf0]
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
fld dword [0x100d6614]
jmp 0x1000397a
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x100045b6
lea eax, [esp + 0xd8]
call fcn.10002ba0
cmp eax, 0x28
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xe0]
setne al
jmp 0x10004568
movzx edi, word [esp + 0x78]
mov ecx, dword [esp + 0x30]
mov word [eax + ecx - 2], di
jmp 0x100035ae
fstp qword [esp + 0x20]
lea eax, [esp + 0xd8]
call fcn.10002ba0
fld qword [esp + 0x20]
jmp 0x1000383f
mov ebp, ecx
jmp 0x10003012
cmp eax, 0x30
je 0x10004ab7
mov dword [esp + 0x58], 0
xor ecx, ecx
xor esi, esi
xor edi, edi
cmp eax, 0x2e
je 0x10005536
xor edx, edx
mov dword [esp + 0x84], edi
mov dword [esp + 0x200], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x30], 0
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x80], esi
mov edi, edx
jmp 0x10004a36
cmp eax, 0x30
mov eax, dword [esp + 0x68]
cmovne eax, dword [esp + 0x30]
test ebx, ebx
mov dword [esp + 0x68], eax
je 0x10004a9e
mov eax, dword [esp + edi*4 + 0x200]
add ebx, 1
cmp ebx, 9
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
mov dword [esp + edi*4 + 0x200], eax
jne 0x10004c66
add edi, 1
mov dword [esp + 0x58], 1
xor ebx, ebx
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0xe8]
je 0x10004c4d
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x10004a47
cmp eax, 0x2e
jne 0x10004b36
cmp eax, 0x2e
je 0x10004a76
add dword [esp + 0x30], 1
adc dword [esp + 0x34], 0
cmp edi, 0x7c
jle 0x100049d0
cmp eax, 0x30
je 0x10004a15
or dword [esp + 0x3f0], 1
mov dword [esp + 0x68], 0x45c
jmp 0x10004a15
test ecx, ecx
jne 0x100055a6
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ecx, 1
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
jmp 0x10004a15
mov dword [esp + edi*4 + 0x200], edx
mov dword [esp + 0x58], 1
mov ebx, 1
jmp 0x10004a15
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe8]
cmp eax, ecx
je 0x100055e0
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
or eax, 0x20
cmp eax, 0x78
je 0x100055ff
test ecx, ecx
je 0x10004b24
sub edx, 1
mov dword [esp + 0xe0], edx
jmp 0x10004b24
lea eax, [edx + 1]
mov dword [esp + 0xe0], eax
movzx eax, byte [edx]
cmp eax, 0x30
jne 0x10004c40
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe8]
cmp edx, ecx
jne 0x10004b00
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x10004b0d
test ecx, ecx
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
jne 0x10004b54
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
test edx, edx
je 0x10004c23
mov edx, eax
or edx, 0x20
cmp edx, 0x65
je 0x10005499
test eax, eax
js 0x10004b91
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x10004b91
mov eax, dword [esp + 0x58]
sub dword [esp + 0xe0], 1
test eax, eax
je 0x100045ec
mov edx, dword [esp + 0x200]
test edx, edx
je 0x10003a03
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
xor ecx, esi
xor eax, edi
or ecx, eax
jne 0x10004bc1
cmp dword [esp + 0x34], 0
jl 0x10004e4c
jle 0x10004e41
cmp edi, 0
jl 0x10004c73
jg 0x10004be1
cmp esi, dword [esp + 0xc0]
jbe 0x10004c73
jmp 0x10004be1
fstp st(0)
jmp 0x10004be1
fstp st(0)
call dword [sym.imp.msvcrt.dll__errno]
fld qword [0x100d6620]
mov dword [eax], 0x22
fld xword [esp + 0x40]
fmul st(1)
fmulp st(1)
fstp qword [esp + 0xc8]
mov eax, dword [esp + 0xf0]
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
fld qword [esp + 0xc8]
jmp 0x1000397a
test eax, eax
js 0x100045ec
mov edx, dword [esp + 0xe8]
test edx, edx
jne 0x10004b7d
jmp 0x100045ec
mov dword [esp + 0x58], 1
jmp 0x10004988
lea eax, [esp + 0xd8]
mov dword [esp + 0x20], ecx
call fcn.10002ba0
mov ecx, dword [esp + 0x20]
jmp 0x10004a36
mov dword [esp + 0x58], 1
jmp 0x10004a15
cmp edi, 0xffffffff
jg 0x10004c9d
jl 0x10004c80
cmp esi, dword [esp + 0x7c]
jae 0x10004c9d
mov eax, dword [esp + 0x50]
call eax
fld qword [0x100d6628]
mov dword [eax], 0x22
fld xword [esp + 0x40]
fmul st(1)
jmp 0x10004bf9
test ebx, ebx
je 0x10004d13
cmp ebx, 8
jg 0x10004d0e
mov eax, dword [esp + 0x20]
cmp ebx, 8
mov eax, dword [esp + eax*4 + 0x200]
lea edx, [eax + eax*4]
lea eax, [edx + edx]
je 0x10004d03
lea edx, [eax + edx*8]
cmp ebx, 7
lea eax, [edx + edx]
je 0x10004d03
lea edx, [eax + edx*8]
cmp ebx, 6
lea eax, [edx + edx]
je 0x10004d03
lea edx, [eax + edx*8]
cmp ebx, 5
lea eax, [edx + edx]
je 0x10004d03
lea edx, [eax + edx*8]
cmp ebx, 4
lea eax, [edx + edx]
je 0x10004d03
lea edx, [eax + edx*8]
cmp ebx, 3
lea eax, [edx + edx]
je 0x10004d03
lea edx, [eax + edx*8]
cmp ebx, 1
lea eax, [edx + edx]
jne 0x10004d03
lea eax, [eax + edx*8]
add eax, eax
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x200], eax
add dword [esp + 0x20], 1
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x58], esi
cmp esi, ebx
setge dl
cmp esi, 0x11
setle al
test dl, al
je 0x10004d6f
cmp ebx, 8
jg 0x10004d6f
cmp esi, 9
je 0x10005516
cmp dword [esp + 0x58], 8
jle 0x100054e4
mov eax, 9
sub eax, dword [esp + 0x58]
lea ecx, [eax + eax*2]
add ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x200]
cmp ecx, 0x1e
jg 0x100054bc
mov edx, eax
shr edx, cl
test edx, edx
je 0x100054bc
mov edx, dword [esp + 0x20]
jmp 0x10004d77
mov edx, eax
lea eax, [edx - 1]
mov ecx, dword [esp + eax*4 + 0x200]
test ecx, ecx
je 0x10004d75
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], edx
mov edx, 0x38e38e39
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x30], 0
imul edx
mov eax, ebx
sar eax, 0x1f
sar edx, 1
mov ecx, edx
sub ecx, eax
lea eax, [ecx + ecx*8]
mov ecx, ebx
sub ecx, eax
je 0x10004e91
lea eax, [ecx + 9]
test edi, edi
cmovs ecx, eax
mov eax, 8
sub eax, ecx
mov edi, dword [eax*4 + 0x100d64e0]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10004e7c
mov eax, 0x3b9aca00
xor esi, esi
xor ebx, ebx
cdq
idiv edi
mov dword [esp + 0x68], eax
mov eax, dword [esp + ebx*4 + 0x200]
xor edx, edx
div edi
add eax, esi
mov esi, dword [esp + 0x68]
mov dword [esp + ebx*4 + 0x200], eax
imul esi, edx
test eax, eax
jne 0x10004e20
mov eax, dword [esp + 0x30]
cmp ebx, eax
jne 0x10004e20
sub dword [esp + 0x58], 9
add eax, 1
and eax, 0x7f
mov dword [esp + 0x30], eax
add ebx, 1
cmp dword [esp + 0x20], ebx
jne 0x10004dea
test esi, esi
je 0x10004e84
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x200], esi
add eax, 1
mov dword [esp + 0x20], eax
jmp 0x10004e84
cmp dword [esp + 0x30], 9
ja 0x10004bc1
mov ecx, dword [esp + 0x60]
cmp ecx, 0x1e
jg 0x10004e61
mov eax, edx
shr eax, cl
test eax, eax
jne 0x10004bc1
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], 0
fild qword [esp + 0x20]
fld xword [esp + 0x40]
fmulp st(1)
jmp 0x10004bfb
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
sub eax, ecx
add eax, 9
mov dword [esp + 0x58], eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x80], ebp
mov eax, dword [esp + 0x58]
cmp eax, 0x11
jle 0x10004ec7
cmp eax, 0x12
jne 0x10004fe5
mov eax, dword [esp + 0x30]
cmp dword [esp + eax*4 + 0x200], 0x89705e
ja 0x10004fe5
mov eax, dword [esp + 0x20]
sub dword [esp + 0x68], 0x1d
xor ebp, ebp
lea ecx, [eax - 1]
mov ebx, ecx
and ebx, 0x7f
mov esi, dword [esp + ebx*4 + 0x200]
xor edi, edi
xor edx, edx
shld edi, esi, 0x1d
shl esi, 0x1d
add esi, ebp
adc edi, edx
cmp edi, 0
ja 0x10004efd
cmp esi, 0x3b9aca00
jbe 0x10004f60
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 0x7c], ecx
call fcn.100abb30
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
mov ebp, eax
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.100abc50
mov ecx, dword [esp + 0x7c]
mov dword [esp + ebx*4 + 0x200], eax
mov edx, ecx
and edx, 0x7f
cmp ebx, edx
je 0x10004f6d
cmp ebx, dword [esp + 0x30]
je 0x10004f97
sub ebx, 1
and ebx, 0x7f
jmp 0x10004eda
mov eax, esi
mov dword [esp + ebx*4 + 0x200], esi
xor ebp, ebp
jmp 0x10004f46
cmp ebx, dword [esp + 0x30]
je 0x10004f97
test eax, eax
jne 0x10004f8a
lea ecx, [ebx - 1]
mov dword [esp + 0x20], ebx
mov eax, ecx
and eax, 0x7f
mov ebx, eax
jmp 0x10004eda
lea eax, [ebx - 1]
and eax, 0x7f
mov ebx, eax
jmp 0x10004eda
test ebp, ebp
je 0x10004ea0
mov eax, dword [esp + 0x30]
add dword [esp + 0x58], 9
sub eax, 1
and eax, 0x7f
cmp dword [esp + 0x20], eax
mov dword [esp + 0x30], eax
jne 0x10004fd9
mov esi, ecx
and esi, 0x7f
lea eax, [esi - 1]
mov edx, dword [esp + esi*4 + 0x200]
mov dword [esp + 0x20], esi
and eax, 0x7f
or dword [esp + eax*4 + 0x200], edx
mov eax, dword [esp + 0x30]
mov dword [esp + eax*4 + 0x200], ebp
jmp 0x10004ea0
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x20]
lea edi, [eax + 1]
mov eax, dword [esp + 0x30]
and eax, 0x7f
cmp ebp, eax
je 0x10005028
mov edx, dword [esp + eax*4 + 0x200]
cmp edx, 0x89705e
jbe 0x10005028
cmp edx, 0x89705f
jne 0x10005033
mov edx, edi
and edx, 0x7f
cmp edx, ebp
je 0x10005028
cmp dword [esp + edx*4 + 0x200], 0xf2f09ff
ja 0x10005033
cmp dword [esp + 0x58], 0x12
je 0x100050e3
mov eax, dword [esp + 0x58]
mov ecx, 0x1dcd65
mov esi, 0x1dcd6500
mov ebx, dword [esp + 0x30]
mov edx, 0x1ff
cmp eax, 0x1b
mov eax, 1
cmovg esi, ecx
setg cl
cmovg eax, edx
movzx ecx, cl
mov dword [esp + 0x7c], esi
mov dword [esp + 0x20], eax
lea ecx, [ecx*8 + 1]
add dword [esp + 0x68], ecx
cmp ebx, ebp
je 0x10004ff0
xor eax, eax
mov esi, dword [esp + ebx*4 + 0x200]
mov edx, esi
shr edx, cl
add edx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + ebx*4 + 0x200], edx
and eax, esi
imul eax, dword [esp + 0x7c]
test edx, edx
jne 0x100050b3
cmp ebx, dword [esp + 0x30]
jne 0x100050b3
sub dword [esp + 0x58], 9
and edi, 0x7f
mov dword [esp + 0x30], edi
lea edi, [edi + 1]
add ebx, 1
and ebx, 0x7f
cmp ebp, ebx
jne 0x1000507b
test eax, eax
je 0x10004ff0
lea edx, [ebp + 1]
and edx, 0x7f
cmp edx, dword [esp + 0x30]
je 0x10005413
mov dword [esp + ebp*4 + 0x200], eax
mov ebp, edx
jmp 0x10004ff0
mov esi, ebp
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x80]
cmp esi, eax
jne 0x1000510d
mov edx, esi
add edx, 1
mov esi, edx
and esi, 0x7f
mov dword [esp + 0x20], esi
mov dword [esp + esi*4 + 0x1fc], 0
mov eax, dword [esp + eax*4 + 0x200]
xor edx, edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
mov eax, edi
fild qword [esp + 0x58]
and eax, 0x7f
cmp dword [esp + 0x20], eax
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
jne 0x10005156
mov edx, dword [esp + 0x20]
add edx, 1
mov esi, edx
and esi, 0x7f
mov dword [esp + 0x20], esi
mov dword [esp + esi*4 + 0x1fc], 0
mov eax, dword [esp + eax*4 + 0x200]
xor edx, edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x68]
fild qword [esp + 0x58]
add eax, 0x35
mov dword [esp + 0x7c], eax
sub eax, dword [esp + 0x70]
cmp dword [esp + 0x60], eax
mov esi, eax
fld dword [str._knN]
fmulp st(2)
faddp st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fld xword [esp + 0x40]
fmulp st(1)
fstp qword [esp + 0x58]
jle 0x10005426
test eax, eax
mov eax, 0
mov ebx, 1
cmovns eax, esi
mov dword [esp + 0x60], eax
fld1
mov eax, 0x69
sub eax, dword [esp + 0x60]
mov edi, 0x35
fst qword [esp]
mov dword [esp + 8], eax
fstp dword [esp + 0x80]
call fcn.100b40e0
fstp qword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
sub edi, dword [esp + 0x60]
fld dword [esp + 0x80]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x5c]
and edx, 0x7fffffff
fstp qword [esp]
mov dword [esp + 8], edi
and eax, 0x80000000
or edx, eax
mov dword [esp + 0x74], edx
call fcn.100b40e0
fstp qword [esp + 8]
fld qword [esp + 0x58]
fstp qword [esp]
call fcn.100b3880
fld st(0)
fld qword [esp + 0x58]
fsub st(2)
fld qword [esp + 0x70]
fxch st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fadd st(1)
fstp qword [esp + 0x58]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
mov eax, ecx
add eax, 2
and eax, 0x7f
cmp eax, edx
je 0x100052ff
mov eax, dword [esp + eax*4 + 0x200]
cmp eax, 0x1dcd64ff
ja 0x100053e7
test eax, eax
jne 0x1000528a
mov eax, ecx
add eax, 3
and eax, 0x7f
cmp eax, edx
je 0x100052ac
fstp st(1)
jmp 0x1000528c
fstp st(1)
fld xword [esp + 0x40]
fmul dword [0x100d6634]
faddp st(2)
fxch st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fxch st(1)
jmp 0x100052b0
fstp st(2)
fxch st(1)
cmp edi, 1
jle 0x100052f5
fstp xword [esp + 0x30]
fld1
fstp qword [esp + 8]
fst qword [esp]
fstp qword [esp + 0x20]
call fcn.100b3880
fldz
fxch st(1)
fucompi st(1)
fstp st(0)
fld qword [esp + 0x20]
fld xword [esp + 0x30]
jp 0x100052f5
jne 0x100052f5
fld1
faddp st(2)
fxch st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fxch st(1)
fld st(1)
fxch st(1)
fxch st(2)
fxch st(1)
jmp 0x10005301
fxch st(2)
fadd qword [esp + 0x58]
mov eax, dword [esp + 0x7c]
and eax, 0x7fffffff
cmp eax, dword [esp + 0x88]
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fsubrp st(2)
fxch st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
jl 0x100053bb
fld dword [0x100d663c]
fld st(1)
fabs
fucompi st(1)
fstp st(0)
jb 0x10005378
fld dword [0x100d661c]
xor ebx, 1
cmp esi, dword [esp + 0x60]
fmulp st(1)
sete al
add dword [esp + 0x68], 1
or ebx, eax
fstp qword [esp + 0xc8]
xor ebx, 1
movzx ebx, bl
fld qword [esp + 0xc8]
mov eax, dword [esp + 0x68]
add eax, 0x34
cmp eax, dword [esp + 0x98]
jge 0x100053a3
fldz
mov edx, 1
fucompi st(2)
fstp st(1)
setp al
cmovne eax, edx
test al, al
je 0x100053bd
test ebx, ebx
je 0x100053bd
jmp 0x100053a5
fstp st(1)
fstp qword [esp + 0x20]
call dword [sym.imp.msvcrt.dll__errno]
fld qword [esp + 0x20]
mov dword [eax], 0x22
jmp 0x100053bd
fstp st(1)
mov eax, dword [esp + 0x68]
mov dword [esp + 8], eax
fstp qword [esp]
call fcn.100b40e0
mov eax, dword [esp + 0xf0]
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
jmp 0x1000397a
fstp st(1)
cmp eax, 0x1dcd6500
je 0x10005434
fld xword [esp + 0x40]
fmul dword [0x100d6638]
faddp st(2)
fxch st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fxch st(1)
jmp 0x100052b0
lea eax, [ebp - 1]
and eax, 0x7f
or dword [esp + eax*4 + 0x200], 1
jmp 0x10004ff0
cmp dword [esp + 0x60], 0x35
je 0x10005465
xor ebx, ebx
jmp 0x100051bb
mov eax, ecx
add eax, 3
and eax, 0x7f
cmp eax, dword [esp + 0x20]
fld xword [esp + 0x40]
je 0x1000547a
fmul dword [0x100d6638]
faddp st(2)
fxch st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fxch st(1)
jmp 0x100052b0
fldz
xor edi, edi
xor ebx, ebx
fld st(0)
fld st(1)
fxch st(1)
fxch st(2)
fxch st(1)
jmp 0x1000524c
fmul dword [0x100d661c]
faddp st(2)
fxch st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fxch st(1)
jmp 0x100052b0
lea eax, [esp + 0xd8]
call fcn.10002d00
lea ecx, [edx - 0x80000000]
add esi, eax
adc edi, edx
or ecx, eax
jne 0x10004b91
jmp 0x100045f8
mov esi, dword [esp + 0x58]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0
fild dword [esi*4 + 0x100d64b8]
fild qword [esp + 0x20]
fld xword [esp + 0x40]
fmulp st(1)
fxch st(1)
jmp 0x10004bf9
mov eax, dword [esp + 0x200]
xor edx, edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
mov eax, 8
sub eax, dword [esp + 0x58]
fild qword [esp + 0x20]
fld xword [esp + 0x40]
fmulp st(1)
fild dword [eax*4 + 0x100d64e0]
fdivp st(1)
jmp 0x10004bfb
mov eax, dword [esp + 0x200]
xor edx, edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
fild qword [esp + 0x20]
fld xword [esp + 0x40]
fmulp st(1)
jmp 0x10004bfb
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0xe8]
je 0x100055cf
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
xor esi, esi
xor edi, edi
cmp eax, 0x30
mov ecx, 1
je 0x10005582
jmp 0x10004997
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
cmp eax, 0x30
jne 0x100055bd
add esi, 0xffffffff
mov eax, dword [esp + 0xe0]
adc edi, 0xffffffff
cmp eax, dword [esp + 0xe8]
jne 0x10005570
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x1000557d
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
jmp 0x10004b54
mov ecx, 1
mov dword [esp + 0x58], 1
jmp 0x10004997
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x10005557
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xe0]
jmp 0x10004ada
cmp ecx, edx
je 0x10005897
lea eax, [edx + 1]
mov dword [esp + 0xe0], eax
movzx eax, byte [edx]
cmp eax, 0x30
je 0x10005634
jmp 0x1000588a
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
cmp eax, 0x30
jne 0x100056c2
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0xe8]
jne 0x1000561e
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x1000562b
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0xe0]
jmp 0x10004693
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov esi, dword [esp + 0xe8]
mov ecx, eax
mov eax, dword [esp + 0xe0]
jmp 0x10004162
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov ecx, dword [esp + 0xe8]
jmp 0x1000453d
lea eax, [esp + 0xd8]
call fcn.10002ba0
mov ecx, dword [esp + 0xe8]
jmp 0x10004515
mov dword [esp + 0x58], 1
cmp eax, 0x2e
je 0x1000580b
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x30], 0
fld1
xor esi, esi
xor edi, edi
mov dword [esp + 0x80], 0
xor ebx, ebx
fldz
jmp 0x1000575c
mov ecx, eax
or ecx, 0x20
mov dword [esp + 0x88], ecx
sub ecx, 0x61
cmp ecx, 5
jbe 0x10005764
cmp eax, 0x2e
jne 0x10005c77
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x100058f6
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0xe8]
je 0x100058c7
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x10005702
cmp eax, 0x2e
je 0x1000571f
cmp eax, 0x39
jle 0x10005774
or eax, 0x20
lea edx, [eax - 0x57]
cmp edi, 0
jle 0x100057bb
test edx, edx
je 0x100057ab
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x100057ab
fld dword [0x100d661c]
mov dword [esp + 0x80], 1
fmul st(2)
faddp st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
add esi, 1
mov dword [esp + 0x58], 1
adc edi, 0
jmp 0x1000573b
jl 0x10005804
cmp esi, 7
jbe 0x10005804
cmp edi, 0
jg 0x10005779
jl 0x100057ce
cmp esi, 0xd
ja 0x10005779
fld dword [0x100d6618]
mov dword [esp + 0x58], edx
fmulp st(2)
fxch st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fild dword [esp + 0x58]
fmul st(1)
faddp st(2)
fxch st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
jmp 0x100057ab
shl ebx, 4
add ebx, edx
jmp 0x100057ab
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0xe8]
je 0x100058b6
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
xor esi, esi
xor edi, edi
cmp eax, 0x30
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
jne 0x1000587d
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0xe8]
je 0x100058a8
lea edx, [eax + 1]
mov dword [esp + 0xe0], edx
movzx eax, byte [eax]
add esi, 0xffffffff
adc edi, 0xffffffff
cmp eax, 0x30
je 0x10005845
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x58], 1
mov dword [esp + 0x30], 1
jmp 0x100056eb
mov dword [esp + 0x58], 0
jmp 0x100056ca
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x10005614
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x10005862
lea eax, [esp + 0xd8]
call fcn.10002ba0
jmp 0x1000582c
fstp qword [esp + 0x98]
lea eax, [esp + 0xd8]
fstp qword [esp + 0x88]
call fcn.10002ba0
fld qword [esp + 0x98]
fld qword [esp + 0x88]
fxch st(1)
jmp 0x1000575c
fstp st(1)
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x10005940
fstp st(0)
jmp 0x10005906
fstp st(0)
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0xe0]
test eax, eax
je 0x10005929
mov eax, dword [esp + 0xe0]
lea edx, [eax - 1]
mov dword [esp + 0xe0], edx
mov dword [esp + 0xec], 0
mov ecx, dword [esp + 0xdc]
jmp 0x10004611
cmp edi, 0
jl 0x10005ba2
jle 0x10005b99
mov esi, dword [esp + 0xe8]
test esi, esi
je 0x10005b90
sub dword [esp + 0xe0], 1
xor eax, eax
xor edx, edx
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
add esi, 0xfffffff8
adc edi, 0xffffffff
shld edi, esi, 2
shl esi, 2
add esi, eax
adc edi, edx
test ebx, ebx
je 0x10003a01
cmp edi, 0
jl 0x100059a3
jg 0x10004bdb
cmp esi, dword [esp + 0xb8]
ja 0x10004bdf
cmp edi, 0xffffffff
jl 0x10005b1f
jg 0x100059b8
cmp esi, dword [esp + 0x7c]
jb 0x10005b23
test ebx, ebx
js 0x100059f4
fld dword [0x100d661c]
fxch st(1)
fucomi st(1)
jb 0x10005b42
lea ebx, [ebx + ebx + 1]
fld st(0)
fsub dword [0x100d660c]
faddp st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
add esi, 0xffffffff
adc edi, 0xffffffff
test ebx, ebx
jns 0x100059c4
fstp st(1)
mov eax, esi
mov edx, edi
add eax, 0x20
adc edx, 0
sub eax, dword [esp + 0x90]
sbb edx, dword [esp + 0x94]
cmp edx, 0
jg 0x10005a2f
jl 0x10005a1c
cmp eax, dword [esp + 0xbc]
jae 0x10005a2f
mov eax, esi
sub eax, dword [esp + 0x70]
add eax, 0x20
mov dword [esp + 0x60], eax
js 0x10005b7c
mov ecx, dword [esp + 0x60]
cmp ecx, 0x34
jg 0x10005b67
fstp qword [esp + 0x30]
mov eax, 0x54
sub eax, ecx
fld1
mov dword [esp + 8], eax
fstp qword [esp]
call fcn.100b40e0
cmp dword [esp + 0x60], 0x1f
fstp qword [esp + 0x20]
fld qword [esp + 0x30]
setle cl
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x6c]
and edx, 0x7fffffff
and eax, 0x80000000
or edx, eax
mov dword [esp + 0x34], edx
mov edx, 1
fld qword [esp + 0x30]
fldz
fld st(0)
fucompi st(3)
setp al
cmovne eax, edx
test al, al
je 0x10005b6b
test cl, cl
je 0x10005b6f
test bl, 1
je 0x10005b59
fstp st(0)
fld xword [esp + 0x40]
fmulp st(2)
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], 0
fild qword [esp + 0x20]
fld xword [esp + 0x40]
fmulp st(1)
fadd st(1)
faddp st(2)
fxch st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fsubrp st(1)
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x10005b16
jne 0x10005b16
fstp qword [esp + 0x20]
call dword [sym.imp.msvcrt.dll__errno]
fld qword [esp + 0x20]
mov dword [eax], 0x22
mov dword [esp + 8], esi
jmp 0x100053c5
fstp st(0)
jmp 0x10005b25
fstp st(0)
call dword [sym.imp.msvcrt.dll__errno]
fld qword [0x100d6628]
mov dword [eax], 0x22
fld xword [esp + 0x40]
fmul st(1)
jmp 0x10004bf9
fadd st(0)
add ebx, ebx
fstp qword [esp + 0xc8]
fld qword [esp + 0xc8]
jmp 0x100059e8
fstp st(2)
fxch st(1)
fxch st(1)
add ebx, 1
jmp 0x10005abc
fldz
jmp 0x10005b71
fstp st(0)
jmp 0x10005b71
fstp st(0)
fld xword [esp + 0x40]
fmulp st(2)
jmp 0x10005abc
fld dword [0x100d6610]
mov ecx, 1
fstp qword [esp + 0x20]
jmp 0x10005a65
xor eax, eax
xor edx, edx
jmp 0x1000596a
cmp esi, 7
ja 0x1000594f
mov dword [esp + 0x88], 0x2e
mov eax, esi
shl ebx, 4
mov edx, edi
add eax, 1
adc edx, 0
xor eax, 8
mov ecx, eax
or ecx, edx
je 0x10005c40
mov eax, esi
shl ebx, 4
mov edx, edi
add eax, 2
adc edx, 0
xor eax, 8
mov ecx, eax
or ecx, edx
je 0x10005c40
mov eax, esi
shl ebx, 4
mov edx, edi
add eax, 3
adc edx, 0
xor eax, 8
mov ecx, eax
or ecx, edx
je 0x10005c40
mov eax, esi
shl ebx, 4
mov edx, edi
add eax, 4
adc edx, 0
xor eax, 8
mov ecx, eax
or ecx, edx
je 0x10005c40
mov eax, esi
shl ebx, 4
mov edx, edi
add eax, 5
adc edx, 0
xor eax, 8
mov ecx, eax
or ecx, edx
je 0x10005c40
mov eax, esi
shl ebx, 4
mov edx, edi
add eax, 6
adc edx, 0
xor eax, 8
mov ecx, eax
or ecx, edx
je 0x10005c40
shl ebx, 4
mov ecx, edi
mov eax, ebx
shl eax, 4
or ecx, esi
cmove ebx, eax
cmp dword [esp + 0x88], 0x70
jne 0x1000594f
lea eax, [esp + 0xd8]
fstp qword [esp + 0x30]
call fcn.10002d00
lea ecx, [edx - 0x80000000]
fld qword [esp + 0x30]
or ecx, eax
jne 0x1000596a
fstp st(0)
jmp 0x100045f8
fstp st(1)
mov eax, dword [esp + 0x58]
test eax, eax
je 0x10005904
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x10005c95
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
cmp edi, 0
jg 0x10005c40
jl 0x10005bad
cmp esi, 7
ja 0x10005c40
jmp 0x10005bad