Function at 0x1001d840
Capabilities:
Check for software breakpoints
Encode data using xor
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x234
mov eax, dword [0x19a91810]
xor eax, esp
mov dword [esp + 0x230], eax
xor eax, eax
mov dword [esp + 0xa0], 0
push ebx
push esi
mov dword [esp + 0xc0], eax
xor ebx, ebx
mov dword [esp + 0xd0], eax
xor esi, esi
mov ax, word [0x19b9d54c]
mov ecx, 0x19a95aec
push edi
xor edi, edi
mov word [esp + 0xc2], ax
mov dword [esp + 0xbc], 0
mov eax, 0x19b9d280
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], esi
mov dword [esp + 0xe0], edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001d8d6
test dl, dl
je 0x1001d8d2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001d8d6
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001d8b6
xor eax, eax
jmp 0x1001d8db
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001fd4e
push dword [0x19b9d554]
lea eax, [esp + 0xe8]
push 0xa
push 1
push eax
call fcn.10034540
push 3
lea eax, [esp + 0xf8]
push 0x19a95b1c
push eax
call fcn.100357a0
add esp, 0x1c
test eax, eax
je 0x1001fd4e
push 3
lea eax, [esp + 0xe8]
push 0x19a95b30
push eax
call fcn.100357a0
add esp, 0xc
test eax, eax
je 0x1001fd4e
push 4
lea eax, [esp + 0xe8]
push 0x19a95b44
push eax
call fcn.100357a0
add esp, 0xc
test eax, eax
je 0x1001fd4e
push 4
lea eax, [esp + 0xe8]
push 0x19a95b5c
push eax
call fcn.100357a0
add esp, 0xc
test eax, eax
je 0x1001fd4e
push 2
lea eax, [esp + 0xe8]
push 0x19a95b94
push eax
call fcn.100357a0
add esp, 0xc
test eax, eax
je 0x1001fc6e
push 3
lea eax, [esp + 0xe8]
push 0x19a95ba8
push eax
call fcn.100357a0
add esp, 0xc
test eax, eax
je 0x1001fc6e
mov ecx, 0x19a95c60
lea eax, [esp + 0xe4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001d9e0
test dl, dl
je 0x1001d9dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001d9e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001d9c0
xor eax, eax
jmp 0x1001d9e5
sbb eax, eax
or eax, 1
mov esi, 0x4949
test eax, eax
jne 0x1001da3a
push dword [0x19b9d554]
call fcn.10034dc0
add esp, 4
mov ebx, eax
mov dword [esp + 0x28], ebx
call fcn.1000f740
mov word [0x19b9d54c], ax
call fcn.1000f740
cmp ax, 0x2a
jne 0x1001fd40
call fcn.1000f7a0
push 1
add eax, 0xfffffff8
push eax
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
jmp 0x1001dd74
mov ecx, 0x19a95cb8
lea eax, [esp + 0xe4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001da66
test dl, dl
je 0x1001da62
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001da66
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001da46
xor eax, eax
jmp 0x1001da6b
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001dd36
mov ecx, 0x19a95cd0
lea eax, [esp + 0xe4]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001daa0
test dl, dl
je 0x1001da9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001daa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001da80
xor eax, eax
jmp 0x1001daa5
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001dd36
push 4
lea eax, [esp + 0xe8]
push 0x19a95d2c
push eax
call fcn.100357a0
add esp, 0xc
test eax, eax
je 0x1001dd14
mov ecx, 0x19a95d40
lea eax, [esp + 0xe4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001daf8
test dl, dl
je 0x1001daf4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001daf8
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001dad8
xor eax, eax
jmp 0x1001dafd
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001dd14
push 8
lea eax, [esp + 0xe8]
push 0x19a95d7c
push eax
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x1001db36
push dword [0x19b9d554]
call fcn.10034dc0
add esp, 4
lea ebx, [eax - 0xa]
jmp 0x1001dd17
mov ecx, 0x19a95db8
lea eax, [esp + 0xe4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001db62
test dl, dl
je 0x1001db5e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001db62
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001db42
xor eax, eax
jmp 0x1001db67
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001dcf9
mov ecx, 0x19a95dec
lea eax, [esp + 0xe4]
jmp 0x1001db80
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001dba0
test dl, dl
je 0x1001db9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001dba0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001db80
xor eax, eax
jmp 0x1001dba5
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001dcf9
mov ecx, 0x19a95e00
lea eax, [esp + 0xe4]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001dbe0
test dl, dl
je 0x1001dbdc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001dbe0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001dbc0
xor eax, eax
jmp 0x1001dbe5
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001dcf9
mov ecx, 0x19a95e28
lea eax, [esp + 0xe4]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001dc20
test dl, dl
je 0x1001dc1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001dc20
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001dc00
xor eax, eax
jmp 0x1001dc25
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001dcf9
mov ecx, 0x19a95eac
lea eax, [esp + 0xe4]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001dc60
test dl, dl
je 0x1001dc5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001dc60
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001dc40
xor eax, eax
jmp 0x1001dc65
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001dcde
mov ecx, 0x19a95ec8
lea eax, [esp + 0xe4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001dc95
test dl, dl
je 0x1001dc91
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001dc95
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001dc75
xor eax, eax
jmp 0x1001dc9a
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001dcde
push 1
push 0xfffffffffffffff6
push dword [0x19b9d554]
call fcn.10034c80
push 7
push 0x19a95f04
push 0x19b9d280
call fcn.100357a0
add esp, 0x18
test eax, eax
jne 0x1001dcf0
push dword [0x19b9d554]
call fcn.10034dc0
mov ebx, eax
add esp, 4
mov dword [esp + 0x28], ebx
jmp 0x1001dd74
push 1
push 0xfffffffffffffffc
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
mov ebx, dword [ebp + 8]
mov dword [esp + 0x28], ebx
jmp 0x1001dd74
push 1
push 0xfffffffffffffffe
push dword [0x19b9d554]
call fcn.10034c80
mov ebx, dword [ebp + 8]
add esp, 0xc
mov dword [esp + 0x28], ebx
jmp 0x1001dd74
mov ebx, dword [ebp + 8]
push 1
push 2
push dword [0x19b9d554]
mov dword [esp + 0x34], ebx
mov word [0x19b9d54c], si
call fcn.10034c80
add esp, 0xc
jmp 0x1001dd74
push dword [0x19b9d554]
call fcn.10034dc0
push 1
push 0xfffffffffffffffe
push dword [0x19b9d554]
lea ebx, [eax - 0xa]
mov dword [esp + 0x38], ebx
call fcn.10034c80
add esp, 0x10
call fcn.1000f740
cmp byte [esp + 0xe4], 0x4f
mov word [0x19b9d54c], ax
jne 0x1001dd74
call fcn.1000f740
call fcn.1000f740
movzx eax, ax
cmp eax, 0x3e8
ja 0x1001fd4e
mov cx, word [0x19b9d54c]
mov word [esp + 0xca], cx
test eax, eax
je 0x1001fd40
mov esi, dword [ebp + 0xc]
shl esi, 0x10
mov dword [ebp + 0xc], esi
jmp 0x1001ddb0
dec eax
mov word [0x19b9d54c], cx
mov dword [esp + 0xcc], eax
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.1002bec0
mov edi, dword [esp + 0x60]
add esp, 0x14
or edi, esi
mov dword [esp + 0xa0], edi
mov dword [esp + 0x4c], edi
cmp edi, 2
jne 0x1001de44
push 0x19a95f14
push 0x19b9d280
call fcn.10035880
add esp, 8
test eax, eax
je 0x1001e0f4
fld dword [0x19b9d1b4]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x1001e0f4
call fcn.1000f740
call fcn.1000f740
movzx eax, ax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp dword [0x19b9d1b4]
jmp 0x1001e0f4
cmp edi, 4
jne 0x1001dfd2
mov eax, dword [esp + 0x24]
add eax, 0xffffffe5
cmp eax, 7
ja 0x1001dfda
call fcn.1000f7a0
call fcn.1000f740
movzx ecx, ax
cmp ecx, 0x7fff
je 0x1001ded8
fld dword [0x19b9d1b4]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x1001ded8
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
test ecx, ecx
jns 0x1001de95
fadd qword [0x19a90e18]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
sub esp, 0x10
fmul qword [0x19a90c28]
fsub qword [0x19a90d38]
fstp qword [esp + 8]
fld qword [0x19a89140]
fstp qword [esp]
call fcn.10007d10
fmul qword [0x19a90d90]
add esp, 0x10
mov edi, dword [esp + 0x4c]
mov dword [esp + 0xa0], edi
fstp dword [0x19b9d1b4]
call fcn.1000f740
call fcn.1000f740
movzx ecx, ax
cmp ecx, 0x7fff
je 0x1001df47
fld dword [0x19b9d1ac]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x1001df47
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
test ecx, ecx
jns 0x1001df10
fadd qword [0x19a90e18]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
sub esp, 0x10
fmul qword [0x19a90c00]
fstp qword [esp + 8]
fld qword [0x19a89140]
fstp qword [esp]
call fcn.10007d10
mov edi, dword [esp + 0x5c]
add esp, 0x10
fstp dword [0x19b9d1ac]
mov dword [esp + 0xa0], edi
call fcn.1000f740
movzx ecx, ax
cmp ecx, 0xffff
je 0x1001dfaa
fld dword [0x19b9d1b0]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x1001dfaa
movsx eax, cx
sub esp, 0x10
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fstp qword [esp + 0x40]
fld qword [esp + 0x40]
fmul qword [0x19a90e48]
fstp qword [esp + 8]
fld qword [0x19a89140]
fstp qword [esp]
call fcn.10007d10
mov edi, dword [esp + 0x5c]
add esp, 0x10
fstp dword [0x19b9d1b0]
mov dword [esp + 0xa0], edi
call fcn.1000f740
call fcn.1000f740
movzx eax, ax
mov dword [esp + 0xc4], eax
call fcn.1000f740
call fcn.1000f740
movzx eax, ax
mov dword [0x19b9d184], eax
jmp 0x1001dfda
cmp edi, 0x114
jne 0x1001e04b
push 6
push 0x19a95f64
push 0x19b9d280
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x1001e04b
lea eax, [edi - 4]
neg eax
push 1
sbb eax, eax
and eax, 0x14
add eax, 0x8c
push eax
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
call fcn.1000f740
movzx eax, ax
cmp eax, 0x48
je 0x1001e041
cmp eax, 0x4c
je 0x1001e035
cmp eax, 0x52
jne 0x1001e04b
mov dword [0x19b9d098], 5
jmp 0x1001e04b
mov dword [0x19b9d098], 6
jmp 0x1001e04b
mov dword [0x19b9d098], 0
cmp edi, 7
jne 0x1001e081
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
cmp ebx, 2
jne 0x1001e0fc
cmp esi, 0x14
jbe 0x1001e0fc
push dword [0x19b9d554]
push 0x40
push 0x19b9d200
call fcn.10033e90
add esp, 0xc
jmp 0x1001e0fc
cmp edi, 8
jne 0x1001e09b
mov ebx, dword [esp + 0x2c]
cmp ebx, 4
jne 0x1001e0f8
call fcn.1000f7a0
mov dword [0x19b9d184], eax
jmp 0x1001e0f8
cmp edi, 9
jne 0x1001e12c
mov ecx, 0x19a95f94
mov eax, 0x19b9d280
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001e0d0
test dl, dl
je 0x1001e0cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001e0d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001e0b0
xor eax, eax
jmp 0x1001e0d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1001e302
push dword [0x19b9d554]
push 1
push 0x40
push 0x19b9d1c0
call fcn.10034540
add esp, 0x10
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
push 0x19a95fe0
push 0x19b9d280
call fcn.10035880
add esp, 8
test eax, eax
je 0x1001e48a
cmp edi, 0x1b
jne 0x1001e478
mov dword [esp + 0x4c], 0x1018
jmp 0x1001f484
cmp edi, 0xc
jne 0x1001e170
mov esi, dword [esp + 0x24]
cmp esi, 4
jne 0x1001e306
mov ebx, dword [esp + 0x2c]
xor esi, esi
push ebx
call fcn.1000fb00
mov ecx, esi
lea eax, [esi + esi]
shr ecx, 1
inc esi
or ecx, eax
add esp, 4
and ecx, 3
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [ecx*4 + 0x19b7af20]
cmp esi, 3
jb 0x1001e144
jmp 0x1001e0f8
cmp edi, 0xd
jne 0x1001e29c
mov ebx, dword [esp + 0x2c]
cmp ebx, 7
jne 0x1001e0f8
call fcn.1000f740
mov ecx, 0xaaaa
cmp ax, cx
jne 0x1001e0f8
mov edx, dword [0x19b9d554]
mov esi, 2
mov ecx, dword [0x19b5aad0]
mov ebx, esi
mov edi, dword [esp + 0x24]
cmp esi, edi
jae 0x1001e202
cmp edx, 0x3ec
jne 0x1001e1dd
cmp dword [0x19b5ab58], 0
je 0x1001e1dd
mov eax, dword [0x19b5aad4]
sub eax, ecx
cmp eax, 1
jl 0x1001e1dd
movzx eax, byte [ecx]
inc ecx
mov dword [0x19b5aad0], ecx
jmp 0x1001e1f2
push edx
call fcn.10033e00
mov edx, dword [0x19b9d554]
add esp, 4
mov ecx, dword [0x19b5aad0]
shl ebx, 8
inc esi
or ebx, eax
mov eax, 0xbbbb
cmp bx, ax
jne 0x1001e1b0
lea ebx, [edi - 5]
add esi, 4
mov edi, dword [esp + 0xa0]
cmp esi, ebx
jae 0x1001e0f4
mov edi, dword [esp + 0x24]
jmp 0x1001e220
call fcn.1000f7a0
cmp eax, 0x101
jne 0x1001e289
mov esi, edi
test edi, edi
je 0x1001e289
call fcn.1000f7a0
mov edx, dword [0x19b9d554]
cmp edx, 0x3ec
jne 0x1001e26c
cmp dword [0x19b5ab58], 0
je 0x1001e26c
mov eax, dword [0x19b5aad4]
mov ecx, dword [0x19b5aad0]
sub eax, ecx
cmp eax, 1
jl 0x1001e26c
movzx eax, byte [ecx]
inc ecx
mov dword [0x19b5aad0], ecx
jmp 0x1001e275
push edx
call fcn.10033e00
add esp, 4
cmp eax, 3
jae 0x1001e289
movsx eax, byte [eax + 0x19a95fc4]
sub eax, 0x30
mov dword [0x19b9d098], eax
add esi, 4
cmp esi, ebx
jb 0x1001e220
mov edi, dword [esp + 0xa0]
jmp 0x1001e0f4
cmp edi, 0x10
jne 0x1001e2bd
mov ebx, dword [esp + 0x2c]
cmp ebx, 4
jne 0x1001e0f8
call fcn.1000f7a0
mov dword [0x19b9d178], eax
jmp 0x1001e0f8
cmp edi, 0x11
jne 0x1001e30f
cmp dword [0x19b9d134], 0
je 0x1001e302
push 5
push 0x19a95fc8
push 0x19b9d280
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x1001e302
push eax
call fcn.1000f7a0
add eax, ebx
push eax
push dword [0x19b9d554]
call fcn.10034c80
push ebx
call fcn.10021c90
jmp 0x1001e0f1
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
jmp 0x1001e0fc
mov ebx, dword [esp + 0x2c]
cmp edi, 0x14
jne 0x1001e43d
mov esi, dword [esp + 0x24]
cmp ebx, 7
jne 0x1001e0fc
cmp esi, 0xa00
jne 0x1001e34b
push 1
push 0x4e0
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
jmp 0x1001f50c
push dword [0x19b9d554]
lea eax, [esp + 0xe8]
push 0xa
push 1
push eax
call fcn.10034540
push 4
lea eax, [esp + 0xf8]
push 0x19a95fd0
push eax
call fcn.100357a0
add esp, 0x1c
test eax, eax
jne 0x1001e0fc
mov ecx, 0x19a95fd8
lea eax, [esp + 0xe8]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001e3b0
test dl, dl
je 0x1001e3ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001e3b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001e390
xor eax, eax
jmp 0x1001e3b5
sbb eax, eax
or eax, 1
neg eax
push 1
sbb eax, eax
and eax, 0xfffffa24
add eax, 0x60a
push eax
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
call fcn.1000f7a0
shl eax, 2
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
test eax, eax
jns 0x1001e3ee
fadd dword [0x19a90e2c]
fstp dword [0x19b7af20]
call fcn.1000f7a0
mov esi, eax
call fcn.1000f7a0
add esi, eax
mov dword [esp + 0x30], esi
fild dword [esp + 0x30]
jns 0x1001e412
fadd dword [0x19a90e2c]
fstp dword [0x19b7af24]
call fcn.1000f7a0
shl eax, 2
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
test eax, eax
jns 0x1001e432
fadd dword [0x19a90e2c]
fstp dword [0x19b7af28]
jmp 0x1001e0f8
cmp edi, 0x15
jne 0x1001e0f8
cmp ebx, 2
jne 0x1001e0f8
cmp dword [0x19b9d134], 0
je 0x1001e0f8
push dword [0x19b9d554]
push 1
push 0x40
push 0x19b9d240
call fcn.10034540
add esp, 0x10
jmp 0x1001e0f8
cmp edi, 0x1c
jne 0x1001e48a
mov dword [esp + 0x4c], 0x1017
jmp 0x1001f405
cmp edi, 0x1d
jne 0x1001e537
cmp dword [0x19b9d554], 0x3ec
jne 0x1001e4c6
cmp dword [0x19b5ab58], 0
je 0x1001e4c6
mov eax, dword [0x19b5aad4]
mov ecx, dword [0x19b5aad0]
sub eax, ecx
cmp eax, 1
jl 0x1001e4c6
movzx esi, byte [ecx]
inc ecx
mov dword [0x19b5aad0], ecx
jmp 0x1001e4d6
push dword [0x19b9d554]
call fcn.10033e00
add esp, 4
mov esi, eax
test esi, esi
je 0x1001e99d
cmp esi, 0xffffffff
je 0x1001e99d
push esi
call fcn.10034f80
add esp, 4
test eax, eax
je 0x1001e50d
mov ecx, dword [esp + 0xbc]
add esi, 0xffffffd0
lea eax, [ecx + ecx*4]
lea ecx, [esi + eax*2]
mov dword [esp + 0xbc], ecx
jmp 0x1001e493
mov ecx, dword [esp + 0xbc]
mov eax, 0xcccccccd
mul esi
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub esi, eax
lea eax, [ecx + ecx*4]
lea ecx, [esi + eax*2]
mov dword [esp + 0xbc], ecx
jmp 0x1001e493
cmp edi, 0x29
jne 0x1001e5aa
cmp ebx, 1
jne 0x1001e99d
mov eax, dword [esp + 0xc4]
cmp eax, 0x12
jae 0x1001e55d
movsx eax, byte [eax + 0x19a91b88]
sub eax, 0x30
jmp 0x1001e55f
xor eax, eax
shl eax, 5
push 1
add eax, 8
push eax
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
xor esi, esi
call fcn.1000f7a0
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
test eax, eax
jns 0x1001e58f
fadd dword [0x19a90e2c]
mov eax, esi
xor eax, 2
shr eax, 1
xor eax, esi
inc esi
fstp dword [eax*4 + 0x19b7af20]
cmp esi, 4
jb 0x1001e578
jmp 0x1001e99d
cmp edi, 0x3d
jne 0x1001e5ec
cmp ebx, 3
jne 0x1001e99d
cmp esi, 4
jne 0x1001e99d
xor esi, esi
call fcn.1000f740
mov cl, 0xe
sub cl, byte [0x19b9d154]
shr ax, cl
mov ecx, esi
shr ecx, 1
xor ecx, esi
inc esi
mov word [ecx*2 + 0x19b9b060], ax
cmp esi, 4
jb 0x1001e5c3
jmp 0x1001e99d
cmp edi, 0x81
jne 0x1001e63f
cmp ebx, 4
jne 0x1001e647
call fcn.1000f7a0
mov dword [0x19b9d194], eax
add eax, 0x29
push 0
push eax
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
call fcn.1000f740
add ax, ax
mov word [0x19b9d08a], ax
call fcn.1000f740
mov word [0x19b9d088], ax
mov dword [0x19b9d090], 0x61616161
jmp 0x1001e99d
cmp edi, 0x100
jne 0x1001e651
cmp ebx, 7
je 0x1001e662
jmp 0x1001e99d
cmp edi, 0x280
jne 0x1001e67b
cmp ebx, 1
jne 0x1001e99d
push dword [0x19b9d554]
call fcn.10034dc0
add esp, 4
mov dword [0x19b9d190], eax
mov dword [0x19b9d174], esi
cmp edi, 0x88
jne 0x1001e6b6
cmp ebx, 4
jne 0x1001e99d
call fcn.1000f7a0
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [0x19b9d190], eax
test eax, eax
je 0x1001e9a9
add eax, esi
mov dword [0x19b9d190], eax
jmp 0x1001e9a9
cmp edi, 0x89
jne 0x1001e6d6
cmp ebx, 4
jne 0x1001e99d
call fcn.1000f7a0
mov dword [0x19b9d174], eax
jmp 0x1001e99d
cmp edi, 0x8c
je 0x1001e6e6
cmp edi, 0x96
jne 0x1001e6f9
push dword [0x19b9d554]
call fcn.10034dc0
add esp, 4
mov dword [0x19b9d18c], eax
cmp edi, 0x97
jne 0x1001e89f
mov edx, dword [0x19b5aad0]
mov esi, 4
mov edi, dword [esp + 0xac]
jmp 0x1001e720
cmp dword [0x19b9d554], 0x3ec
jne 0x1001e74d
cmp dword [0x19b5ab58], 0
je 0x1001e74d
mov eax, dword [0x19b5aad4]
sub eax, edx
cmp eax, 1
jl 0x1001e74d
movzx eax, byte [edx]
inc edx
mov dword [0x19b5aad0], edx
jmp 0x1001e761
push dword [0x19b9d554]
call fcn.10033e00
mov edx, dword [0x19b5aad0]
add esp, 4
lea edi, [edi + edi*4]
lea edi, [edi - 0x18]
lea edi, [eax + edi*2]
dec esi
jne 0x1001e720
mov eax, edi
mov dword [esp + 0xac], edi
mov edi, dword [esp + 0xa0]
sub eax, 0x64
je 0x1001e858
sub eax, 2
je 0x1001e819
dec eax
je 0x1001e7e2
mov eax, dword [esp + 0xac]
cmp eax, 0xc8
jb 0x1001e99d
cmp eax, 0xcd
je 0x1001e7c0
push 1
push 0x118
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
push dword [0x19b9d554]
lea eax, [esp + 0xf4]
push 1
push 0x144
push eax
call fcn.10034540
add esp, 0x10
jmp 0x1001e99d
push 1
push 0x10
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
xor esi, esi
call fcn.1000f740
movzx eax, ax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp dword [esi + 0x19b7af20]
add esi, 4
cmp esi, 0x10
jb 0x1001e7f6
jmp 0x1001e99d
push 1
push 6
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
xor esi, esi
lea ecx, [ecx]
call fcn.1000f740
movzx eax, ax
mov dword [esp + 0x30], eax
mov eax, esi
fild dword [esp + 0x30]
shr eax, 1
xor eax, esi
inc esi
fstp dword [eax*4 + 0x19b7af20]
cmp esi, 4
jb 0x1001e830
jmp 0x1001e99d
push 1
push 0x44
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
xor esi, esi
lea esp, [esp]
call fcn.1000f740
movzx eax, ax
mov ecx, esi
mov dword [esp + 0x30], eax
and ecx, 1
fild dword [esp + 0x30]
mov eax, esi
add ecx, ecx
shr eax, 1
inc esi
or ecx, eax
fstp dword [ecx*4 + 0x19b7af20]
cmp esi, 4
jb 0x1001e870
jmp 0x1001e99d
cmp edi, 0xa1
jne 0x1001e8fc
cmp ebx, 7
jne 0x1001e99d
push 1
push 0x8c
push dword [0x19b9d554]
mov eax, 0x4949
mov word [0x19b9d54c], ax
call fcn.10034c80
add esp, 0xc
xor esi, esi
call fcn.1000f7a0
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
test eax, eax
jns 0x1001e8e9
fadd dword [0x19a90e2c]
fstp dword [esi + 0x19b7af20]
add esi, 4
cmp esi, 0xc
jb 0x1001e8d2
jmp 0x1001e99d
cmp edi, 0xa4
jne 0x1001ea2d
cmp ebx, 3
jne 0x1001e99d
mov eax, dword [esp + 0xc4]
push 1
lea eax, [eax + eax*2]
shl eax, 4
push eax
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
mov edi, 0x4949
xor esi, esi
push dword [0x19b9d554]
lea eax, [esp + 0x74]
mov word [esp + 0x74], 0xffff
push 2
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], di
jne 0x1001e969
movzx ecx, byte [esp + 0x71]
movzx eax, byte [esp + 0x70]
jmp 0x1001e973
movzx ecx, byte [esp + 0x70]
movzx eax, byte [esp + 0x71]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp dword [esi + 0x19b7af20]
add esi, 4
cmp esi, 0xc
jb 0x1001e936
mov edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov eax, edi
or eax, 0x70
cmp eax, 0x2070
jne 0x1001f63d
cmp ecx, 4
je 0x1001e9c7
cmp ecx, 0xd
jne 0x1001f63d
push dword [0x19b9d554]
lea eax, [esp + 0x9c]
mov dword [esp + 0x9c], 0xffffffff
push 4
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], ax
jne 0x1001f5fa
movzx ecx, byte [esp + 0x9b]
movzx eax, byte [esp + 0x9a]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x99]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x98]
jmp 0x1001f624
cmp edi, 0xa7
jne 0x1001ec48
mov eax, dword [esp + 0xac]
add eax, 0xffffff38
cmp eax, 0x11
jae 0x1001e99d
cmp dword [0x19b9d554], 0x3ec
mov eax, dword [esp + 0xbc]
movzx eax, al
mov al, byte [eax + 0x19a90898]
mov byte [esp + 0xab], al
jne 0x1001eaa0
mov esi, dword [0x19b5ab58]
test esi, esi
je 0x1001eaa0
mov edx, dword [0x19b5aad4]
mov eax, edx
mov ecx, dword [0x19b5aad0]
sub eax, ecx
cmp eax, 1
jl 0x1001eaa0
movzx eax, byte [ecx]
inc ecx
mov dword [esp + 0x30], eax
mov dword [0x19b5aad0], ecx
jmp 0x1001ead0
push dword [0x19b9d554]
call fcn.10033e00
add esp, 4
mov dword [esp + 0x30], eax
cmp dword [0x19b9d554], 0x3ec
jne 0x1001eaf0
mov esi, dword [0x19b5ab58]
mov edx, dword [0x19b5aad4]
mov ecx, dword [0x19b5aad0]
test esi, esi
je 0x1001eaf0
mov eax, edx
sub eax, ecx
cmp eax, 1
jl 0x1001eaf0
movzx eax, byte [ecx]
inc ecx
mov dword [esp + 0xb0], eax
mov dword [0x19b5aad0], ecx
jmp 0x1001eb23
push dword [0x19b9d554]
call fcn.10033e00
add esp, 4
mov dword [esp + 0xb0], eax
cmp dword [0x19b9d554], 0x3ec
jne 0x1001eb3c
mov esi, dword [0x19b5ab58]
mov edx, dword [0x19b5aad4]
mov ecx, dword [0x19b5aad0]
test esi, esi
je 0x1001eb3c
mov eax, edx
sub eax, ecx
cmp eax, 1
jl 0x1001eb3c
movzx ebx, byte [ecx]
inc ecx
mov dword [0x19b5aad0], ecx
jmp 0x1001eb6a
push dword [0x19b9d554]
call fcn.10033e00
add esp, 4
mov ebx, eax
cmp dword [0x19b9d554], 0x3ec
jne 0x1001eb81
mov esi, dword [0x19b5ab58]
mov edx, dword [0x19b5aad4]
mov ecx, dword [0x19b5aad0]
test esi, esi
je 0x1001eb81
sub edx, ecx
cmp edx, 1
jl 0x1001eb81
movzx eax, byte [ecx]
inc ecx
mov dword [0x19b5aad0], ecx
jmp 0x1001eb8f
push dword [0x19b9d554]
call fcn.10033e00
add esp, 4
xor eax, ebx
xor ecx, ecx
xor eax, dword [esp + 0xb0]
xor eax, dword [esp + 0x30]
mov bl, byte [eax + 0x19a90998]
mov ah, byte [esp + 0xab]
mov al, ah
mov dl, ah
add al, al
add dl, al
shl dl, 5
jmp 0x1001ebc0
add bl, dl
add dl, ah
xor byte [esp + ecx + 0xf0], bl
inc ecx
cmp ecx, 0x144
jb 0x1001ebc0
mov eax, dword [esp + 0xac]
lea edx, [esp + 0xf0]
xor esi, esi
mov edi, 0x4949
movsx eax, byte [eax + 0x19a91c18]
sub eax, 0x30
mov ebx, eax
and eax, 0xfffffffe
and ebx, 1
add edx, eax
lea ecx, [ecx]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
cmp word [0x19b9d54c], di
jne 0x1001ec16
shl cx, 8
jmp 0x1001ec1a
shl ax, 8
or cx, ax
add edx, 2
movzx eax, cx
movzx eax, ax
mov dword [esp + 0x30], eax
mov eax, esi
fild dword [esp + 0x30]
shr eax, 1
xor eax, ebx
xor eax, esi
inc esi
fstp dword [eax*4 + 0x19b7af20]
cmp esi, 4
jb 0x1001ec00
jmp 0x1001e996
cmp edi, 0x200
jne 0x1001ed80
cmp esi, 3
jne 0x1001ed0e
push dword [0x19b9d554]
lea eax, [esp + 0xbc]
mov dword [esp + 0xbc], 0xffffffff
push 4
push 1
push eax
call fcn.10034540
push dword [0x19b9d554]
lea eax, [esp + 0x8c]
mov dword [esp + 0x8c], 0xffffffff
push 4
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x20
cmp word [0x19b9d54c], ax
jne 0x1001ece0
movzx ecx, byte [esp + 0x7b]
movzx eax, byte [esp + 0x7a]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x79]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x78]
shl ecx, 8
or ecx, eax
mov dword [0x19b9d184], ecx
jmp 0x1001e99d
movzx ecx, byte [esp + 0x78]
movzx eax, byte [esp + 0x79]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x7a]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x7b]
shl ecx, 8
or ecx, eax
mov dword [0x19b9d184], ecx
jmp 0x1001e99d
cmp esi, 4
jne 0x1001e99d
xor esi, esi
mov edi, 0x4949
mov edi, edi
push dword [0x19b9d554]
lea eax, [esp + 0x60]
mov word [esp + 0x60], 0xffff
push 2
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], di
jne 0x1001ed53
movzx ecx, byte [esp + 0x5d]
movzx eax, byte [esp + 0x5c]
jmp 0x1001ed5d
movzx ecx, byte [esp + 0x5c]
movzx eax, byte [esp + 0x5d]
shl cx, 8
or cx, ax
mov eax, esi
shr eax, 1
xor eax, esi
movzx ecx, cx
inc esi
mov word [eax*2 + 0x19b9b060], cx
cmp esi, 4
jb 0x1001ed20
jmp 0x1001e996
cmp edi, 0x201
jne 0x1001ee0a
cmp esi, 4
jne 0x1001e99d
xor esi, esi
mov edi, 0x4949
lea esp, [esp]
push dword [0x19b9d554]
lea eax, [esp + 0x40]
mov word [esp + 0x40], 0xffff
push 2
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], di
jne 0x1001edd3
movzx ecx, byte [esp + 0x3d]
movzx eax, byte [esp + 0x3c]
jmp 0x1001eddd
movzx ecx, byte [esp + 0x3c]
movzx eax, byte [esp + 0x3d]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
mov dword [esp + 0x30], eax
mov eax, esi
fild dword [esp + 0x30]
shr eax, 1
xor eax, esi
inc esi
fstp dword [eax*4 + 0x19b7af20]
cmp esi, 4
jb 0x1001eda0
jmp 0x1001e996
cmp edi, 0x220
jne 0x1001ee33
cmp ebx, 7
jne 0x1001e99d
push dword [0x19b9d554]
call fcn.10034dc0
add esp, 4
mov dword [0x19b9d18c], eax
jmp 0x1001e99d
cmp edi, 0x401
jne 0x1001ef06
cmp ebx, 4
jne 0x1001e99d
cmp esi, ebx
jne 0x1001e99d
xor esi, esi
mov edi, 0x4949
jmp 0x1001ee60
push dword [0x19b9d554]
lea eax, [esp + 0x84]
mov dword [esp + 0x84], 0xffffffff
push 4
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], di
jne 0x1001eeba
movzx ecx, byte [esp + 0x83]
movzx eax, byte [esp + 0x82]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x81]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x80]
jmp 0x1001eee4
movzx ecx, byte [esp + 0x80]
movzx eax, byte [esp + 0x81]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x82]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x83]
shl ecx, 8
or ecx, eax
mov eax, esi
shr eax, 1
xor eax, esi
inc esi
mov word [eax*2 + 0x19b9b060], cx
cmp esi, 4
jb 0x1001ee60
jmp 0x1001e996
cmp edi, 0xe01
jne 0x1001f116
push 1
push 0x16
push dword [0x19b9d554]
mov eax, 0x4949
mov word [0x19b9d54c], ax
call fcn.10034c80
add esp, 0xc
mov ebx, 0x16
cmp esi, 0x2c
jbe 0x1001e99d
lea ecx, [ecx]
push dword [0x19b9d554]
lea eax, [esp + 0x94]
mov dword [esp + 0x94], 0xffffffff
push 4
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], ax
jne 0x1001ef9f
movzx edi, byte [esp + 0x93]
movzx eax, byte [esp + 0x92]
shl edi, 8
or edi, eax
movzx eax, byte [esp + 0x91]
shl edi, 8
or edi, eax
movzx eax, byte [esp + 0x90]
jmp 0x1001efc9
movzx edi, byte [esp + 0x90]
movzx eax, byte [esp + 0x91]
shl edi, 8
or edi, eax
movzx eax, byte [esp + 0x92]
shl edi, 8
or edi, eax
movzx eax, byte [esp + 0x93]
push 1
shl edi, 8
or edi, eax
push 0xe
push dword [0x19b9d554]
mov dword [esp + 0xac], edi
mov dword [esp + 0x58], edi
call fcn.10034c80
mov eax, dword [0x19b5aac0]
add esp, 0xc
mov ecx, dword [0x19b5ab54]
cmp ecx, dword [eax + 0x790]
ja 0x1001f116
push dword [0x19b9d554]
lea eax, [esp + 0x8c]
mov dword [esp + 0x8c], 0xffffffff
push 4
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], ax
jne 0x1001f061
movzx ecx, byte [esp + 0x8b]
movzx eax, byte [esp + 0x8a]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x89]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x88]
jmp 0x1001f08b
movzx ecx, byte [esp + 0x88]
movzx eax, byte [esp + 0x89]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x8a]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x8b]
shl ecx, 8
or ecx, eax
lea esi, [ecx - 4]
cmp edi, 0x76a43207
jne 0x1001f0f1
push dword [0x19b9d554]
lea eax, [esp + 0x48]
mov word [esp + 0x48], 0xffff
push 2
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], ax
jne 0x1001f0d3
movzx ecx, byte [esp + 0x45]
movzx eax, byte [esp + 0x44]
jmp 0x1001f0dd
movzx ecx, byte [esp + 0x44]
movzx eax, byte [esp + 0x45]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
mov dword [0x19b9d098], eax
jmp 0x1001f102
push 1
push esi
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
add esi, 0x16
add ebx, esi
mov esi, dword [esp + 0x24]
lea eax, [ebx + 0x16]
cmp eax, esi
jb 0x1001ef40
cmp edi, 0xe80
jne 0x1001f23c
mov ecx, dword [esp + 0x2c]
cmp esi, 0x100
jne 0x1001e9a1
cmp ecx, 7
jne 0x1001e9a1
push 1
push 0x30
push dword [0x19b9d554]
call fcn.10034c80
push dword [0x19b9d554]
lea eax, [esp + 0x50]
mov word [esp + 0x50], 0xffff
push 2
push 1
push eax
call fcn.10034540
mov ebx, 0x4949
add esp, 0x1c
cmp word [0x19b9d54c], bx
jne 0x1001f182
movzx ecx, byte [esp + 0x41]
movzx eax, byte [esp + 0x40]
jmp 0x1001f18c
movzx ecx, byte [esp + 0x40]
movzx eax, byte [esp + 0x41]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
imul eax, eax, 0x1fc
mov dword [esp + 0x30], eax
lea eax, [esp + 0x64]
fild dword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fmul qword [0x19a90cd8]
push dword [0x19b9d554]
mov word [esp + 0x68], 0xffff
push 2
push 1
fmul qword [0x19a90ba8]
push eax
fstp dword [0x19b7af20]
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], bx
jne 0x1001f1f4
movzx ecx, byte [esp + 0x65]
movzx eax, byte [esp + 0x64]
jmp 0x1001f1fe
movzx ecx, byte [esp + 0x64]
movzx eax, byte [esp + 0x65]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
imul eax, eax, 0x17e
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fmul qword [0x19a90ce8]
mov edi, dword [esp + 0x4c]
fmul qword [0x19a90ba8]
fstp dword [0x19b7af28]
jmp 0x1001e99d
cmp edi, 0xf00
jne 0x1001f2a1
mov ecx, dword [esp + 0x2c]
cmp ecx, 7
jne 0x1001e9a1
cmp esi, 0x266
jne 0x1001f273
push 1
push 0xb0
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
jmp 0x1001f50c
cmp esi, 0x2de
je 0x1001f287
cmp esi, 0x5de
jne 0x1001fc34
push 1
push 0x94
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
jmp 0x1001f50c
cmp edi, 0x1011
jne 0x1001f2b3
cmp esi, 9
je 0x1001f2bf
jmp 0x1001e99d
cmp edi, 0x20400200
jne 0x1001f375
mov ebx, 0x19b7aee0
mov dword [esp + 0xb0], 3
mov dword [esp + 0x30], ebx
mov esi, ebx
mov edi, 3
mov ebx, 0x4949
nop
push dword [0x19b9d554]
lea eax, [esp + 0x4c]
mov word [esp + 0x4c], 0xffff
push 2
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], bx
jne 0x1001f313
movzx ecx, byte [esp + 0x49]
movzx eax, byte [esp + 0x48]
jmp 0x1001f31d
movzx ecx, byte [esp + 0x48]
movzx eax, byte [esp + 0x49]
shl cx, 8
or cx, ax
movzx eax, cx
cwde
mov dword [esp + 0xa0], eax
fild dword [esp + 0xa0]
fstp qword [esp + 0xa0]
fld qword [esp + 0xa0]
fmul qword [0x19a90bd0]
fstp dword [esi]
add esi, 4
dec edi
jne 0x1001f2e0
mov ebx, dword [esp + 0x30]
add ebx, 0x10
dec dword [esp + 0xb0]
mov dword [esp + 0x30], ebx
jne 0x1001f2d3
mov edi, dword [esp + 0x4c]
mov dword [esp + 0xa0], edi
cmp edi, 0x1012
je 0x1001f385
cmp edi, 0x20400600
jne 0x1001f3f5
cmp dword [esp + 0x24], 4
jne 0x1001f3f5
xor esi, esi
mov edi, 0x4949
push dword [0x19b9d554]
lea eax, [esp + 0x70]
mov word [esp + 0x70], 0xffff
push 2
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], di
jne 0x1001f3c6
movzx ecx, byte [esp + 0x6d]
movzx eax, byte [esp + 0x6c]
jmp 0x1001f3d0
movzx ecx, byte [esp + 0x6c]
movzx eax, byte [esp + 0x6d]
shl cx, 8
or cx, ax
mov eax, esi
shr eax, 1
xor eax, esi
movzx ecx, cx
inc esi
mov word [eax*2 + 0x19b9b060], cx
cmp esi, 4
jb 0x1001f393
mov edi, dword [esp + 0xa0]
cmp edi, 0x1017
je 0x1001f405
cmp edi, 0x20400100
jne 0x1001f474
push dword [0x19b9d554]
lea eax, [esp + 0x54]
mov word [esp + 0x54], 0xffff
push 2
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], ax
jne 0x1001f43d
movzx ecx, byte [esp + 0x51]
movzx eax, byte [esp + 0x50]
jmp 0x1001f447
movzx ecx, byte [esp + 0x50]
movzx eax, byte [esp + 0x51]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fmul qword [0x19a90bd0]
mov edi, dword [esp + 0x4c]
fstp dword [0x19b7af20]
cmp edi, 0x1018
je 0x1001f484
cmp edi, 0x20400100
jne 0x1001f4f3
push dword [0x19b9d554]
lea eax, [esp + 0x78]
mov word [esp + 0x78], 0xffff
push 2
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], ax
jne 0x1001f4bc
movzx ecx, byte [esp + 0x75]
movzx eax, byte [esp + 0x74]
jmp 0x1001f4c6
movzx ecx, byte [esp + 0x74]
movzx eax, byte [esp + 0x75]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fmul qword [0x19a90bd0]
mov edi, dword [esp + 0x4c]
fstp dword [0x19b7af28]
mov ebx, dword [esp + 0x24]
cmp edi, 0x2011
jne 0x1001f5f1
cmp ebx, 2
jne 0x1001f5f1
push dword [0x19b9d554]
mov eax, 0x4d4d
mov word [esp + 0x5c], 0xffff
push 2
mov word [0x19b9d54c], ax
lea eax, [esp + 0x60]
push 1
push eax
call fcn.10034540
mov ebx, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], bx
jne 0x1001f54f
movzx ecx, byte [esp + 0x59]
movzx eax, byte [esp + 0x58]
jmp 0x1001f559
movzx ecx, byte [esp + 0x58]
movzx eax, byte [esp + 0x59]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x68]
fild dword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
push dword [0x19b9d554]
fmul qword [0x19a90bd0]
push 2
push 1
push eax
mov word [esp + 0x78], 0xffff
fstp dword [0x19b7af20]
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], bx
jne 0x1001f5b5
movzx ecx, byte [esp + 0x69]
movzx eax, byte [esp + 0x68]
jmp 0x1001f5bf
movzx ecx, byte [esp + 0x68]
movzx eax, byte [esp + 0x69]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fmul qword [0x19a90bd0]
mov edi, dword [esp + 0x4c]
fstp dword [0x19b7af28]
jmp 0x1001e99d
mov ecx, dword [esp + 0x2c]
jmp 0x1001e9a5
movzx ecx, byte [esp + 0x98]
movzx eax, byte [esp + 0x99]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x9a]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x9b]
shl ecx, 8
or ecx, eax
push 0
lea eax, [ecx + esi]
push eax
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
cmp edi, 0x2020
jne 0x1001f680
push 5
lea eax, [esp + 0xe8]
push 0x19a91e4c
push eax
call fcn.100357a0
add esp, 0xc
test eax, eax
jne 0x1001fc34
mov ebx, dword [esp + 0x28]
push 0x102
push 0x101
push ebx
call fcn.100219f0
add esp, 0xc
jmp 0x1001fc38
cmp edi, 0x2040
jne 0x1001f69b
mov ebx, dword [esp + 0x28]
push edi
push ebx
call fcn.1001d840
add esp, 8
jmp 0x1001fc38
cmp edi, 0xb028
jne 0x1001f74a
push dword [0x19b9d554]
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0xffffffff
push 4
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], ax
jne 0x1001f6fa
movzx ecx, byte [esp + 0x7f]
movzx eax, byte [esp + 0x7e]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x7d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x7c]
jmp 0x1001f718
movzx ecx, byte [esp + 0x7c]
movzx eax, byte [esp + 0x7d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x7e]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x7f]
mov ebx, dword [esp + 0x28]
shl ecx, 8
or ecx, eax
push 0
lea eax, [ecx + ebx]
push eax
push dword [0x19b9d554]
call fcn.10034c80
push 0x89
push 0x88
push ebx
call fcn.100219f0
add esp, 0x18
jmp 0x1001fc38
cmp edi, 0x4001
jne 0x1001f8d1
cmp ebx, 0x1f4
jbe 0x1001fc34
cmp ebx, 0x246
jne 0x1001f771
mov edi, 0x32
jmp 0x1001f793
cmp ebx, 0x28d
jne 0x1001f780
mov edi, 0x44
jmp 0x1001f793
lea edi, [ebx - 0x1400]
neg edi
sbb edi, edi
and edi, 0xfffffff0
add edi, 0x8e
push 1
push edi
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
mov ebx, 0x4949
xor esi, esi
jmp 0x1001f7b0
push dword [0x19b9d554]
lea eax, [esp + 0x64]
mov word [esp + 0x64], 0xffff
push 2
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], bx
jne 0x1001f7e3
movzx ecx, byte [esp + 0x61]
movzx eax, byte [esp + 0x60]
jmp 0x1001f7ed
movzx ecx, byte [esp + 0x60]
movzx eax, byte [esp + 0x61]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
mov dword [esp + 0x30], eax
mov eax, esi
fild dword [esp + 0x30]
shr eax, 1
xor eax, esi
inc esi
fstp dword [eax*4 + 0x19b7af20]
cmp esi, 4
jb 0x1001f7b0
add edi, 0x12
cmp edi, dword [esp + 0x24]
ja 0x1001fc34
push dword [0x19b9d554]
lea eax, [esp + 0xb8]
mov word [esp + 0xb8], 0xffff
push 2
push 1
push eax
call fcn.10034540
add esp, 0x10
mov ebx, 0x4949
xor esi, esi
lea ecx, [ecx]
push dword [0x19b9d554]
lea eax, [esp + 0x3c]
mov word [esp + 0x3c], 0xffff
push 2
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], bx
jne 0x1001f883
movzx ecx, byte [esp + 0x39]
movzx eax, byte [esp + 0x38]
jmp 0x1001f88d
movzx ecx, byte [esp + 0x38]
movzx eax, byte [esp + 0x39]
shl cx, 8
or cx, ax
mov eax, esi
shr eax, 1
xor eax, esi
movzx ecx, cx
inc esi
mov word [eax*2 + 0x19b7afc8], cx
cmp esi, 4
jb 0x1001f850
mov ebx, dword [esp + 0x24]
mov eax, 0x492
cmp word [0x19b7afca], ax
je 0x1001fc34
add edi, 0xa
cmp edi, ebx
jbe 0x1001f822
jmp 0x1001fc34
cmp edi, 0x4021
jne 0x1001fa31
push dword [0x19b9d554]
lea eax, [esp + 0x88]
mov dword [esp + 0x88], 0xffffffff
push 4
push 1
push eax
call fcn.10034540
mov ebx, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], bx
jne 0x1001f93c
movzx ecx, byte [esp + 0x87]
movzx eax, byte [esp + 0x86]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x85]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x84]
jmp 0x1001f966
movzx ecx, byte [esp + 0x84]
movzx eax, byte [esp + 0x85]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x86]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x87]
shl ecx, 8
or ecx, eax
test ecx, ecx
je 0x1001fc34
push dword [0x19b9d554]
lea eax, [esp + 0x90]
mov dword [esp + 0x90], 0xffffffff
push 4
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], bx
jne 0x1001f9cd
movzx ecx, byte [esp + 0x8f]
movzx eax, byte [esp + 0x8e]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x8d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x8c]
jmp 0x1001f9f7
movzx ecx, byte [esp + 0x8c]
movzx eax, byte [esp + 0x8d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x8e]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x8f]
shl ecx, 8
or ecx, eax
test ecx, ecx
je 0x1001fc34
mov dword [0x19b7af20], 0x44800000
mov dword [0x19b7af24], 0x44800000
mov dword [0x19b7af28], 0x44800000
mov dword [0x19b7af2c], 0x44800000
jmp 0x1001fc34
cmp edi, 0xa021
jne 0x1001fafc
xor esi, esi
nop
push dword [0x19b9d554]
lea eax, [esp + 0x98]
mov dword [esp + 0x98], 0xffffffff
push 4
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], ax
jne 0x1001fa9f
movzx ecx, byte [esp + 0x97]
movzx eax, byte [esp + 0x96]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x95]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x94]
jmp 0x1001fac9
movzx ecx, byte [esp + 0x94]
movzx eax, byte [esp + 0x95]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x96]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x97]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
test ecx, ecx
jns 0x1001fae0
fadd dword [0x19a90e2c]
mov eax, esi
shr eax, 1
xor eax, esi
inc esi
fstp dword [eax*4 + 0x19b7af20]
cmp esi, 4
jb 0x1001fa40
jmp 0x1001fc34
cmp edi, 0xa028
jne 0x1001fbd8
xor esi, esi
lea ebx, [ebx]
push dword [0x19b9d554]
lea eax, [esp + 0xa0]
mov dword [esp + 0xa0], 0xffffffff
push 4
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], ax
jne 0x1001fb6f
movzx ecx, byte [esp + 0x9f]
movzx eax, byte [esp + 0x9e]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x9d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x9c]
jmp 0x1001fb99
movzx ecx, byte [esp + 0x9c]
movzx eax, byte [esp + 0x9d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x9e]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x9f]
shl ecx, 8
or ecx, eax
mov eax, esi
shr eax, 1
xor eax, esi
mov dword [esp + 0x30], ecx
fld dword [eax*4 + 0x19b7af20]
fild dword [esp + 0x30]
test ecx, ecx
jns 0x1001fbbd
fadd dword [0x19a90e2c]
fstp dword [esp + 0x30]
fsub dword [esp + 0x30]
inc esi
fstp dword [eax*4 + 0x19b7af20]
cmp esi, 4
jb 0x1001fb10
jmp 0x1001fc34
cmp edi, 0xb001
jne 0x1001fc34
push dword [0x19b9d554]
lea eax, [esp + 0x58]
mov word [esp + 0x58], 0xffff
push 2
push 1
push eax
call fcn.10034540
mov eax, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], ax
jne 0x1001fc18
movzx ecx, byte [esp + 0x55]
movzx eax, byte [esp + 0x54]
jmp 0x1001fc22
movzx ecx, byte [esp + 0x54]
movzx eax, byte [esp + 0x55]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
mov dword [0x19b9d178], eax
mov ebx, dword [esp + 0x28]
push 0
push dword [esp + 0xd4]
push dword [0x19b9d554]
call fcn.10034c80
mov eax, dword [esp + 0xd8]
add esp, 0xc
mov esi, dword [ebp + 0xc]
mov cx, word [esp + 0xca]
test eax, eax
jne 0x1001ddb0
jmp 0x1001fd40
push dword [0x19b9d554]
mov eax, 0x4d4d
mov word [0x19b9d54c], ax
call fcn.10034dc0
add esp, 4
cmp eax, dword [0x19b9d194]
jae 0x1001fd40
cmp eax, 0x4000
jae 0x1001fd40
mov dword [esp + 0xd4], esi
mov esi, ebx
mov ebx, edi
mov dword [esp + 0xdc], esi
mov dword [esp + 0xd8], ebx
call fcn.1000f740
movzx edi, ax
mov dword [esp + 0xe0], edi
cmp ebx, 0x100
jne 0x1001fd26
cmp edi, ebx
jne 0x1001fd26
mov eax, dword [esp + 0xd4]
add eax, 0xfffffeff
cmp eax, 0x17e
ja 0x1001fd26
lea eax, [esi - 0x101]
cmp eax, 0x17e
ja 0x1001fd26
xor ecx, ecx
jmp 0x1001fd00
mov eax, dword [esp + ecx + 0xd4]
fild dword [esp + ecx + 0xd4]
test eax, eax
jns 0x1001fd18
fadd dword [0x19a90e2c]
fstp dword [ecx + 0x19b7af20]
add ecx, 4
cmp ecx, 0x10
jb 0x1001fd00
push dword [0x19b9d554]
call fcn.10034dc0
add esp, 4
cmp eax, dword [0x19b9d194]
jb 0x1001fc93
mov ax, word [esp + 0xc2]
mov word [0x19b9d54c], ax
mov ecx, dword [esp + 0x23c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10007d50
mov esp, ebp
pop ebp
ret