Function at 0x100197e0
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x43c
push ebx
push esi
push edi
mov al, byte [0x10044138]
mov byte [ebp - 0xb3], al
movzx ecx, byte [0x100440be]
mov dword [ebp - 0x2c], ecx
movsx eax, byte [0x1004403b]
cdq
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov byte [ebp - 5], 0x1b
movsx edx, word [0x10044180]
mov dword [ebp - 0x20], edx
mov eax, dword [0x10044118]
mov byte [ebp - 3], al
xor ecx, ecx
mov dword [ebp - 0x4c], 0xcc8017c8
mov dword [ebp - 0x48], ecx
movsx dx, byte [0x100440fb]
mov word [ebp - 0x10], dx
mov eax, dword [0x10044190]
mov word [ebp - 0x14], ax
mov cx, word [0x100441b0]
mov byte [ebp - 6], cl
movzx eax, byte [0x1004409f]
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
movsx eax, byte [0x10044076]
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov edx, 0x619d
mov word [ebp - 0xc], dx
mov dword [ebp - 0x34], 0xc9df
xor eax, eax
mov dword [ebp - 0x54], 0x73c5ba70
mov dword [ebp - 0x50], eax
xor ecx, ecx
mov dword [ebp - 0x1c], 0xfe
mov dword [ebp - 0x18], ecx
mov dl, byte [0x100440d3]
mov byte [ebp - 2], dl
xor eax, eax
mov dword [ebp - 0x44], 0x52
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x30], 0x595bf7d1
mov cx, word [0x100441a0]
mov byte [ebp - 1], cl
mov byte [ebp - 4], 0xd7
mov dword [ebp - 0x398], 0xa1c0
mov eax, dword [0x10044168]
cdq
mov dword [ebp - 0x40c], eax
mov dword [ebp - 0x408], edx
mov edx, 0xe3f4
mov word [ebp - 0x324], dx
mov al, byte [0x1004419c]
mov byte [ebp - 0xb2], al
mov ecx, 0x42
mov word [ebp - 0x320], cx
mov dword [ebp - 0x39c], 0x36
mov byte [ebp - 0xb1], 0xa4
mov dword [ebp - 0x3a0], 0x48716643
mov eax, dword [0x10044168]
cdq
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x410], edx
mov dword [ebp - 0x3a4], 0x840f
xor edx, edx
mov dword [ebp - 0x41c], 0x2da4
mov dword [ebp - 0x418], edx
movsx ax, byte [0x1004409e]
mov word [ebp - 0x31c], ax
mov ecx, 0x386a
mov word [ebp - 0x318], cx
mov eax, dword [0x10044170]
cdq
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x420], edx
movzx eax, byte [0x100440d3]
cdq
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x428], edx
mov dword [ebp - 0x74], 0x344
jmp 0x10019999
mov edx, dword [ebp - 0x74]
sub edx, 1
mov dword [ebp - 0x74], edx
cmp dword [ebp - 0x74], 0
jle 0x100199e1
movzx eax, word [0x10044124]
mov ecx, dword [0x1004411c]
sub ecx, eax
mov dword [0x1004411c], ecx
movsx eax, byte [ebp - 4]
cdq
mov ecx, 8
imul ecx, ecx, 0x7eef
mov dword [ecx + 0x10205898], eax
mov dword [ecx + 0x1020589c], edx
mov edx, dword [0x10044160]
add edx, 1
mov dword [0x10044160], edx
jmp 0x10019990
mov eax, dword [0x10044ca8]
mov dword [ebp - 0x78], eax
push 0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x3a8], edx
push ecx
push 0
movzx eax, byte [ebp - 2]
push eax
call fcn.1001d630
add esp, 0x10
mov byte [0x100440be], al
movzx ecx, byte [0x100440be]
test ecx, ecx
jle 0x10019a23
mov dword [ebp - 0x1d0], 1
jmp 0x10019a2d
mov dword [ebp - 0x1d0], 0
movzx edx, byte [0x100440be]
cmp edx, 0x2f
jle 0x10019a45
mov dword [ebp - 0x1d4], 1
jmp 0x10019a4f
mov dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0x1d0]
cmp eax, dword [ebp - 0x1d4]
jge 0x10019aa7
mov ecx, dword [0x10044158]
sub ecx, 0x6c2d242a
mov edx, dword [0x1004415c]
sbb edx, 0xf6724
mov dword [0x10044158], ecx
mov dword [0x1004415c], edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
sub eax, 0x68
sbb ecx, 0
mov dword [0x10044128], eax
mov dword [0x1004412c], ecx
movsx edx, word [0x100441a0]
shl edx, 5
mov dword [ebp - 0x2c], edx
jmp 0x10019acd
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x48]
jne 0x10019acd
mov ecx, 0x5ef57
mov dword [ebp - 0x54], 0xbc372b58
mov dword [ebp - 0x50], ecx
mov edx, dword [0x10044120]
sub edx, 0x44da4ed3
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x78]
add eax, 0x588
mov dword [ebp - 0x3ac], eax
mov ecx, 3
mov word [0x1004418c], cx
push 0xa6765
push 0x80a21eaf
mov edx, dword [ebp - 0x40]
push edx
mov eax, dword [ebp - 0x44]
push eax
call fcn.10026530
mov ecx, dword [0x10044118]
and ecx, eax
mov dword [0x10044118], ecx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x3b0], eax
add edx, 0xade55a08
mov word [ebp - 0xc], dx
movsx ecx, byte [0x10044077]
test ecx, ecx
jne 0x10019b39
mov dword [ebp - 0x1d8], 1
jmp 0x10019b43
mov dword [ebp - 0x1d8], 0
mov edx, dword [ebp - 0x1d8]
mov dword [0x10044120], edx
movzx eax, word [0x1004418c]
mov dword [ebp - 0x1dc], eax
cmp dword [ebp - 0x1dc], 3
ja case.default.0x10019b6f
mov ecx, dword [ebp - 0x1dc]
jmp dword [ecx*4 + 0x1001ca44]
mov edx, dword [0x10044ca8]
xor eax, eax
mov dword [0x10044130], edx
mov dword [0x10044134], eax
push 0
push 0x28691f20
mov ecx, dword [0x1004413c]
push ecx
mov edx, dword [0x10044138]
push edx
call fcn.10026530
mov dword [0x10044160], eax
jmp case.default.0x10019b6f
movzx eax, byte [ebp - 5]
cdq
add eax, 0xeaf36477
adc edx, 0xf721b
mov dword [0x100441a8], eax
mov dword [0x100441ac], edx
movzx eax, word [0x1004418c]
cdq
xor eax, 0x35277c3d
mov word [ebp - 0xc], ax
jmp case.default.0x10019b6f
movsx eax, byte [0x1004404e]
cdq
add eax, 0x1eb335a4
mov word [0x1004410c], ax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
movsx ecx, word [0x10044180]
imul edx, ecx, 0x786d
mov dword [ebp - 0x20], edx
jmp case.default.0x10019b6f
mov eax, dword [ebp - 0x20]
sub eax, 0x13bfa9f7
mov dword [0x1004416c], eax
xor ecx, ecx
mov dword [ebp - 0x28], 8
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x78]
add edx, 0x6e0
mov dword [ebp - 0x3b4], edx
mov eax, 8
imul ecx, eax, 0x14
mov edx, dword [0x10044138]
mov eax, dword [0x1004413c]
mov dword [ecx + 0x100b3e28], edx
mov dword [ecx + 0x100b3e2c], eax
mov ecx, dword [0x10044100]
mov edx, dword [0x10044104]
push 0
push 0x87eb
push edx
push ecx
call fcn.10026530
mov ecx, eax
movsx eax, byte [ebp - 1]
cdq
add eax, ecx
mov byte [ebp - 1], al
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
add edx, 0x882923b8
adc eax, 0
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x78]
add ecx, 0x65c
mov dword [ebp - 0x3b8], ecx
movsx edx, word [0x100440fc]
movsx eax, byte [0x100440fb]
add edx, eax
mov word [0x100440fc], dx
xor ecx, ecx
mov dword [ebp - 0x3c], 0xf40d039f
mov dword [ebp - 0x38], ecx
mov byte [0x1004404f], 0xa2
movzx edx, byte [0x100440be]
test edx, edx
jne 0x10019cdd
xor eax, eax
mov dword [ebp - 0x240], 1
mov dword [ebp - 0x23c], eax
jmp 0x10019ce8
xorps xmm0, xmm0
movlpd qword [ebp - 0x240], xmm0
mov ecx, dword [ebp - 0x240]
add ecx, dword [0x10044178]
mov edx, dword [ebp - 0x23c]
adc edx, dword [0x1004417c]
mov dword [ebp - 0x344], ecx
mov dword [ebp - 0x340], edx
mov eax, dword [ebp - 0x344]
or eax, dword [ebp - 0x340]
jne 0x10019d26
mov dword [ebp - 0x1e0], 1
jmp 0x10019d30
mov dword [ebp - 0x1e0], 0
movzx eax, byte [ebp - 3]
not eax
cdq
mov ecx, dword [0x10044110]
sub ecx, eax
mov esi, dword [0x10044114]
sbb esi, edx
movsx eax, word [ebp - 0x14]
movzx edx, word [0x1004418c]
add eax, edx
cdq
xor ecx, eax
xor esi, edx
mov dword [ebp - 0x34c], ecx
mov dword [ebp - 0x348], esi
mov eax, dword [ebp - 0x34c]
or eax, dword [ebp - 0x348]
jne 0x10019d7f
mov dword [ebp - 0xc8], 1
jmp 0x10019d89
mov dword [ebp - 0xc8], 0
mov ecx, dword [ebp - 0x1e0]
add ecx, dword [ebp - 0xc8]
mov byte [ebp - 1], cl
mov byte [ebp - 2], 4
movsx edx, word [ebp - 0x14]
movzx eax, word [ebp - 0x10]
sub edx, eax
movsx ecx, word [ebp - 0x14]
sub ecx, edx
mov word [ebp - 0x14], cx
mov byte [0x100440fb], 4
movzx edx, byte [ebp - 2]
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0xcc], 4
ja case.default.0x10019dd4
mov eax, dword [ebp - 0xcc]
jmp dword [eax*4 + 0x1001ca54]
imul eax, dword [ebp - 0x34], 0x5e3bcb90
cdq
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
and ecx, eax
and esi, edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], esi
mov edx, dword [0x10044130]
sub edx, 0x2a37a645
mov eax, dword [0x10044134]
sbb eax, 0
push eax
push edx
mov ecx, dword [ebp - 0x40]
push ecx
mov edx, dword [ebp - 0x44]
push edx
call fcn.10026530
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
jmp case.default.0x10019dd4
movzx eax, byte [ebp - 3]
cdq
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x3bc], edx
sub ecx, eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
call fcn.10026570
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
movzx eax, byte [ebp - 3]
sar eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x4c]
xor ecx, 0x9253b187
mov edx, dword [ebp - 0x48]
xor edx, 0
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
jmp case.default.0x10019dd4
movsx eax, word [ebp - 0x14]
movzx ecx, word [ebp - 0xc]
sub eax, ecx
jne 0x10019e88
xor edx, edx
mov dword [ebp - 0x354], 1
mov dword [ebp - 0x350], edx
jmp 0x10019e93
xorps xmm0, xmm0
movlpd qword [ebp - 0x354], xmm0
movzx eax, word [0x100441b0]
cdq
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x3c0], edx
sub eax, ecx
add eax, dword [ebp - 0x354]
not eax
mov ecx, dword [0x10044158]
not ecx
add eax, ecx
mov dword [ebp - 0x34], eax
movsx edx, word [ebp - 0x14]
movzx eax, byte [ebp - 5]
imul edx, eax
mov word [ebp - 0x14], dx
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
push 0
push 0xb
push edx
push ecx
call fcn.10026530
mov ecx, eax
mov eax, dword [ebp - 0x20]
cdq
add eax, ecx
mov dword [ebp - 0x20], eax
jmp case.default.0x10019dd4
mov edx, dword [0x10044100]
mov eax, dword [0x10044104]
add edx, 1
adc eax, 0
mov dword [0x10044100], edx
mov dword [0x10044104], eax
mov ecx, 0xffffcea8
mov word [0x100440fc], cx
jmp case.default.0x10019dd4
movsx edx, word [0x1004419c]
add edx, dword [0x10044160]
movsx eax, word [0x1004419c]
sub eax, edx
mov word [0x1004419c], ax
mov ecx, 8
imul ecx, ecx, 0x81ea
movsx eax, word [0x100441a0]
cdq
mov esi, dword [ecx + 0x10044cb4]
push esi
mov ecx, dword [ecx + 0x10044cb0]
push ecx
push edx
push eax
call fcn.10026530
mov word [0x100441a0], ax
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x7c], 0xf
jmp 0x10019f78
mov edx, dword [ebp - 0x7c]
sub edx, 1
mov dword [ebp - 0x7c], edx
cmp dword [ebp - 0x7c], 0
jle 0x10019fae
movsx eax, byte [ebp - 1]
movsx ecx, byte [0x1004403a]
add eax, ecx
movsx edx, byte [ebp - 1]
sub edx, eax
mov byte [ebp - 1], dl
movzx eax, word [ebp - 0x10]
and eax, 0xa9b4
cdq
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov al, byte [ebp - 1]
add al, 1
mov byte [ebp - 1], al
jmp 0x10019f6f
mov dword [ebp - 0x400], 0
movzx eax, word [0x10044124]
cdq
mov ecx, dword [0x10044150]
mov esi, dword [0x10044154]
mov dword [ebp - 0x35c], eax
mov dword [ebp - 0x358], edx
mov dword [ebp - 0x364], ecx
mov dword [ebp - 0x360], esi
mov edx, dword [ebp - 0x35c]
cmp edx, dword [ebp - 0x364]
jne 0x1001a00c
mov eax, dword [ebp - 0x358]
cmp eax, dword [ebp - 0x360]
jne 0x1001a00c
mov dword [ebp - 0xd0], 1
jmp 0x1001a016
mov dword [ebp - 0xd0], 0
movzx ecx, word [0x10044124]
cmp ecx, 0x1b
jne 0x1001a02e
mov dword [ebp - 0xd4], 1
jmp 0x1001a038
mov dword [ebp - 0xd4], 0
mov edx, dword [ebp - 0xd0]
cmp edx, dword [ebp - 0xd4]
jle 0x1001a15b
push 0
push 0
push 0
push 0
call fcn.1001d9b0
add esp, 0x10
mov byte [ebp - 1], al
movsx eax, byte [ebp - 1]
test eax, eax
je 0x1001a14a
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x20]
cdq
mov ecx, eax
sub ecx, 0x171b153a
mov eax, dword [ebp - 0x20]
cdq
sub eax, ecx
mov dword [ebp - 0x20], eax
mov edx, dword [0x10044148]
sub edx, 0x7057
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x328], eax
cmp dword [ebp - 0x328], 0
je 0x1001a0ab
jmp 0x1001a148
movzx eax, word [0x1004410c]
cdq
mov ecx, dword [0x1004417c]
push ecx
mov ecx, dword [0x10044178]
push ecx
push edx
push eax
call fcn.10026530
mov dword [ebp - 0x36c], eax
mov dword [ebp - 0x368], edx
mov edx, dword [ebp - 0x36c]
or edx, dword [ebp - 0x368]
jne 0x1001a0ee
mov dword [ebp - 0xd8], 1
jmp 0x1001a0f8
mov dword [ebp - 0xd8], 0
mov eax, dword [0x10044160]
sub eax, dword [ebp - 0xd8]
jne 0x1001a119
xor ecx, ecx
mov dword [ebp - 0x248], 1
mov dword [ebp - 0x244], ecx
jmp 0x1001a124
xorps xmm0, xmm0
movlpd qword [ebp - 0x248], xmm0
mov edx, dword [ebp - 0x248]
mov eax, dword [ebp - 0x244]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x48], eax
xor ecx, ecx
mov dword [0x10044110], 0x39
mov dword [0x10044114], ecx
jmp 0x1001a156
mov edx, 2
mov word [0x1004418c], dx
jmp 0x1001a1ec
movsx eax, byte [0x10044077]
test eax, eax
jne 0x1001a172
mov dword [ebp - 0xdc], 1
jmp 0x1001a17c
mov dword [ebp - 0xdc], 0
movzx ecx, byte [ebp - 5]
add ecx, dword [ebp - 0xdc]
je 0x1001a1ec
movsx eax, byte [0x10044076]
cdq
push 0xf32d
push 0xc3889636
push edx
push eax
call fcn.10026530
mov ecx, eax
movzx eax, word [0x10044198]
cdq
sub eax, ecx
mov word [0x10044198], ax
mov edx, dword [0x10044150]
mov eax, dword [0x10044154]
mov ecx, dword [0x10044154]
add edx, dword [0x10044150]
adc eax, ecx
mov ecx, dword [0x10044150]
mov esi, dword [0x10044154]
push eax
push edx
push esi
push ecx
call fcn.10026530
mov dword [0x10044150], eax
mov dword [0x10044154], edx
mov dword [ebp - 0x3c4], 0
movzx edx, byte [ebp - 6]
sub edx, dword [ebp - 0x20]
movzx eax, byte [ebp - 6]
add eax, edx
mov byte [ebp - 6], al
movzx ecx, byte [ebp - 2]
test ecx, ecx
je 0x1001a224
movsx eax, byte [0x1004404e]
cdq
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1f4], edx
jmp 0x1001a23b
mov edx, dword [0x10044110]
mov eax, dword [0x10044114]
mov dword [ebp - 0x1f8], edx
mov dword [ebp - 0x1f4], eax
mov ecx, dword [ebp - 0x1f8]
mov dword [0x10044184], ecx
mov dword [ebp - 0x3c8], 0
mov edx, dword [0x10044100]
mov eax, dword [0x10044104]
mov ecx, dword [ebp - 0x18]
sub edx, dword [ebp - 0x1c]
sbb eax, ecx
mov ecx, dword [0x10044100]
mov esi, dword [0x10044104]
add ecx, edx
adc esi, eax
mov dword [0x10044100], ecx
mov dword [0x10044104], esi
movsx edx, word [0x100440fc]
add edx, dword [0x10044184]
mov eax, dword [0x10044184]
sub eax, edx
mov dword [0x10044184], eax
movsx eax, byte [0x1004404d]
cdq
xor eax, 0x9535cd6b
xor edx, 0xc422
mov dword [0x10044158], eax
mov dword [0x1004415c], edx
movsx ecx, byte [0x10044077]
cmp ecx, dword [ebp - 0x34]
jge 0x1001a2cf
mov dword [ebp - 0xe0], 1
jmp 0x1001a2d9
mov dword [ebp - 0xe0], 0
movsx edx, byte [0x10044077]
cmp edx, 0x4d
jge 0x1001a2f1
mov dword [ebp - 0xe4], 1
jmp 0x1001a2fb
mov dword [ebp - 0xe4], 0
mov eax, dword [ebp - 0xe0]
cmp eax, dword [ebp - 0xe4]
jne 0x1001a3a1
movzx ecx, word [ebp - 0xc]
cmp ecx, dword [0x10044190]
jae 0x1001a325
mov dword [ebp - 0xe8], 1
jmp 0x1001a32f
mov dword [ebp - 0xe8], 0
movzx edx, word [ebp - 0xc]
cmp edx, 0x28
jge 0x1001a344
mov dword [ebp - 0xec], 1
jmp 0x1001a34e
mov dword [ebp - 0xec], 0
mov eax, dword [ebp - 0xe8]
cmp eax, dword [ebp - 0xec]
jge 0x1001a380
mov ecx, dword [0x10044150]
mov edx, dword [0x10044154]
mov dword [ebp - 0x3cc], edx
sub ecx, 0xc9e9fd93
movzx eax, byte [ebp - 6]
cdq
sub eax, ecx
mov byte [ebp - 6], al
jmp 0x1001a3a1
movzx eax, byte [ebp - 3]
cdq
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov ax, word [0x10044ca8]
mov word [ebp - 0x14], ax
mov ecx, dword [0x10044ca8]
mov dword [0x10044120], ecx
movzx edx, byte [0x1004409f]
test edx, edx
jne 0x1001a3d9
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x374], eax
mov dword [ebp - 0x370], ecx
mov edx, dword [ebp - 0x374]
or edx, dword [ebp - 0x370]
je 0x1001a3d9
mov eax, dword [0x10044158]
or eax, dword [0x1004415c]
jne 0x1001a432
mov dword [0x10044170], 0
movsx ecx, byte [0x10044076]
movzx edx, byte [0x100440fa]
sub ecx, edx
mov word [0x1004414c], cx
mov al, byte [ebp - 2]
add al, 1
mov byte [ebp - 2], al
mov ecx, dword [0x10044170]
mov dword [ebp - 0x32c], ecx
cmp dword [ebp - 0x32c], 0
je 0x1001a419
jmp 0x1001a430
mov dl, byte [0x10044ca8]
mov byte [ebp - 1], dl
movzx eax, word [ebp - 0xc]
add eax, 0x20fd
mov dword [0x10044170], eax
jmp 0x1001a449
movzx ecx, word [ebp - 0x10]
test ecx, ecx
je 0x1001a449
mov edx, 0x3eab3
mov dword [ebp - 0x28], 0x893f2a98
mov dword [ebp - 0x24], edx
mov eax, dword [0x10044190]
xor ecx, ecx
mov dword [ebp - 0x37c], eax
mov dword [ebp - 0x378], ecx
mov edx, dword [ebp - 0x378]
cmp edx, dword [ebp - 0x5c]
jl 0x1001a6d8
jg 0x1001a47c
mov eax, dword [ebp - 0x37c]
cmp eax, dword [ebp - 0x60]
jb 0x1001a6d8
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x384], ecx
mov dword [ebp - 0x380], edx
mov eax, dword [ebp - 0x384]
or eax, dword [ebp - 0x380]
je 0x1001a5dd
movzx eax, byte [0x1004404f]
cdq
mov dword [ebp - 0x38c], eax
mov dword [ebp - 0x388], edx
mov ecx, dword [0x100441a8]
cmp ecx, dword [ebp - 0x38c]
jne 0x1001a4d0
mov edx, dword [0x100441ac]
cmp edx, dword [ebp - 0x388]
je 0x1001a51f
mov eax, dword [ebp - 0x34]
sar eax, 2
mov word [0x1004419c], ax
mov ecx, dword [0x100441a8]
mov edx, dword [0x100441ac]
mov dword [0x10044128], ecx
mov dword [0x1004412c], edx
mov eax, dword [0x10044190]
xor eax, 0x4c0a
xor ecx, ecx
mov edx, dword [0x10044130]
sub edx, eax
mov eax, dword [0x10044134]
sbb eax, ecx
mov dword [0x10044130], edx
mov dword [0x10044134], eax
jmp 0x1001a5d8
movsx ecx, word [0x1004419c]
test ecx, ecx
jne 0x1001a577
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x3d0], ecx
add edx, eax
mov dword [ebp - 0x30], edx
movzx edx, word [0x100441b0]
mov eax, dword [0x10044194]
imul eax, edx
xor ecx, ecx
mov edx, dword [0x10044150]
mov esi, dword [0x10044154]
push ecx
push eax
push esi
push edx
call fcn.10026530
push 0
push 0xdf97
push edx
push eax
call fcn.10026530
mov byte [ebp - 3], al
jmp 0x1001a5d8
mov eax, dword [0x1004411c]
cdq
mov dword [ebp - 0x394], eax
mov dword [ebp - 0x390], edx
mov eax, dword [0x10044158]
cmp eax, dword [ebp - 0x394]
jne 0x1001a5a4
mov ecx, dword [0x1004415c]
cmp ecx, dword [ebp - 0x390]
je 0x1001a5d8
mov edx, dword [ebp - 0x20]
add edx, 0xd3eb
mov byte [ebp - 3], dl
mov ecx, dword [0x10044128]
mov edx, dword [0x1004412c]
mov dword [ebp - 0x3d4], edx
add ecx, 0x5da8
movzx eax, word [0x1004414c]
cdq
add eax, ecx
mov word [0x1004414c], ax
jmp 0x1001a6d6
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x24c], ecx
mov edx, dword [ebp - 0x250]
or edx, dword [ebp - 0x24c]
jne 0x1001a611
xor eax, eax
mov dword [ebp - 0x200], 1
mov dword [ebp - 0x1fc], eax
jmp 0x1001a61c
xorps xmm0, xmm0
movlpd qword [ebp - 0x200], xmm0
mov ecx, dword [ebp - 0x40]
cmp ecx, dword [ebp - 0x1fc]
jl 0x1001a640
jg 0x1001a634
mov edx, dword [ebp - 0x44]
cmp edx, dword [ebp - 0x200]
jb 0x1001a640
mov dword [ebp - 0xf0], 1
jmp 0x1001a64a
mov dword [ebp - 0xf0], 0
mov eax, dword [0x10044170]
cdq
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x254], edx
mov eax, dword [0x10044134]
cmp eax, dword [ebp - 0x254]
jl 0x1001a685
jg 0x1001a679
mov ecx, dword [0x10044130]
cmp ecx, dword [ebp - 0x258]
jb 0x1001a685
mov dword [ebp - 0xf4], 1
jmp 0x1001a68f
mov dword [ebp - 0xf4], 0
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xf4]
jl 0x1001a6d6
movsx eax, byte [0x100440bf]
movsx ecx, byte [0x1004404d]
and eax, ecx
movsx edx, byte [0x100440bf]
imul edx, eax
mov byte [0x100440bf], dl
imul eax, dword [0x10044118], 0xd27
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
mov byte [0x1004403b], 0x49
jmp 0x1001a6ea
mov edx, dword [0x10044178]
xor edx, 0x800e
mov dword [0x10044170], edx
xor eax, eax
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], eax
movzx ecx, byte [ebp - 6]
mov edx, dword [ebp - 0x34]
imul edx, ecx
mov eax, dword [ebp - 0x34]
add eax, edx
mov dword [ebp - 0x34], eax
movsx ecx, byte [0x1004403a]
movzx edx, word [0x1004410c]
imul ecx, edx
mov byte [0x1004403a], cl
xor eax, eax
mov byte [ebp - 0x61], al
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x61]
call fcn.10002520
mov ecx, eax
call fcn.10001fe0
push eax
push 0
push 0
call fcn.100015e0
add esp, 8
call eax
mov dword [ebp - 0x68], eax
push 0
movsx ecx, word [0x100440fc]
push ecx
push 0
mov edx, dword [0x10044120]
push edx
call fcn.1001d630
add esp, 0x10
xor ecx, ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x260], edx
mov dword [ebp - 0x25c], eax
mov ecx, dword [ebp - 0x260]
or ecx, dword [ebp - 0x25c]
je 0x1001a7bd
movzx eax, byte [ebp - 2]
cdq
push edx
push eax
push 0
push 0x90
call fcn.1001d0c0
add esp, 0x10
mov dword [0x10044164], eax
cmp dword [0x10044164], 0
je 0x1001a7bd
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x20], eax
mov edx, 1
test edx, edx
je 0x1001ae7f
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
not eax
not ecx
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x264], ecx
mov edx, dword [ebp - 0x268]
or edx, dword [ebp - 0x264]
je 0x1001a806
mov eax, 0x3ab2022c
or eax, 0x19034
je 0x1001a806
mov dword [ebp - 0xf8], 1
jmp 0x1001a810
mov dword [ebp - 0xf8], 0
movzx ecx, word [0x1004414c]
cmp dword [ebp - 0xf8], ecx
jle 0x1001a82b
mov dword [ebp - 0x100], 1
jmp 0x1001a835
mov dword [ebp - 0x100], 0
mov edx, dword [ebp - 0x44]
or edx, dword [ebp - 0x40]
je 0x1001a86e
mov eax, dword [0x10044150]
mov ecx, dword [0x10044154]
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x26c], ecx
mov edx, dword [ebp - 0x270]
or edx, dword [ebp - 0x26c]
je 0x1001a86e
mov dword [ebp - 0xfc], 1
jmp 0x1001a878
mov dword [ebp - 0xfc], 0
movzx eax, word [0x10044174]
sub eax, dword [ebp - 0xfc]
cmp dword [ebp - 0x100], eax
jne 0x1001aa0c
movzx ecx, word [0x10044198]
cmp dword [0x10044148], ecx
jne 0x1001a8ac
mov dword [ebp - 0x104], 1
jmp 0x1001a8b6
mov dword [ebp - 0x104], 0
cmp dword [0x10044148], 0x61
jne 0x1001a8cb
mov dword [ebp - 0x108], 1
jmp 0x1001a8d5
mov dword [ebp - 0x108], 0
mov edx, dword [ebp - 0x104]
cmp edx, dword [ebp - 0x108]
je 0x1001a916
mov ecx, dword [ebp - 0x44]
sub ecx, 0x7f
mov eax, dword [ebp - 0x20]
cdq
sub eax, ecx
mov dword [ebp - 0x20], eax
movsx eax, byte [0x1004404e]
imul eax, dword [0x10044148]
not eax
movsx edx, byte [ebp - 4]
sub eax, edx
not eax
cdq
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
jmp 0x1001aa07
movsx eax, word [0x10044180]
movzx ecx, byte [ebp - 3]
cmp eax, ecx
jle 0x1001a96e
cmp dword [0x10044120], 0
jne 0x1001a96e
movzx eax, word [ebp - 0xc]
cdq
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
push edx
push eax
push esi
push ecx
call fcn.10026530
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], esi
mov edx, 4
imul eax, edx, 0xed69
mov ecx, dword [ebp - 0x20]
sub ecx, dword [eax + 0x10186c40]
mov dword [ebp - 0x20], ecx
jmp 0x1001aa07
mov edx, dword [0x10044130]
or edx, dword [0x10044134]
jne 0x1001a988
mov dword [ebp - 0x10c], 1
jmp 0x1001a992
mov dword [ebp - 0x10c], 0
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x10c], eax
jne 0x1001a9a9
mov dword [ebp - 0x110], 1
jmp 0x1001a9b3
mov dword [ebp - 0x110], 0
movsx ecx, byte [ebp - 1]
not ecx
cmp ecx, dword [ebp - 0x110]
jl 0x1001aa07
movsx edx, byte [0x100440fb]
mov dword [ebp - 0x2c], edx
movsx eax, byte [ebp - 4]
cdq
xor eax, 0xf0c4a14
xor edx, 0xe904a
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
imul eax, dword [0x10044148], 0x8d14d9c5
xor ecx, ecx
mov edx, dword [0x10044158]
sub edx, eax
mov eax, dword [0x1004415c]
sbb eax, ecx
mov dword [0x10044158], edx
mov dword [0x1004415c], eax
jmp 0x1001aa9d
movzx ecx, byte [ebp - 6]
cmp ecx, dword [ebp - 0x2c]
jge 0x1001aa21
mov dword [ebp - 0x114], 1
jmp 0x1001aa2b
mov dword [ebp - 0x114], 0
mov edx, dword [ebp - 0x114]
not edx
test edx, edx
jne 0x1001aa42
movzx eax, word [0x10044124]
test eax, eax
je 0x1001aa9d
movzx eax, byte [ebp - 5]
cdq
xor eax, dword [ebp - 0x44]
xor edx, dword [ebp - 0x40]
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x274], edx
mov ecx, dword [ebp - 0x278]
or ecx, dword [ebp - 0x274]
jne 0x1001aa7b
xor edx, edx
mov dword [ebp - 0x208], 1
mov dword [ebp - 0x204], edx
jmp 0x1001aa86
xorps xmm0, xmm0
movlpd qword [ebp - 0x208], xmm0
mov eax, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x204]
mov dword [0x10044130], eax
mov dword [0x10044134], ecx
movsx edx, byte [ebp - 4]
test edx, edx
je 0x1001aaf0
mov eax, dword [0x10044150]
mov ecx, dword [0x10044154]
and eax, 0x1558dcda
and ecx, 0x6dd50
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
push ecx
push eax
push esi
push edx
call fcn.10026530
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
movzx eax, word [0x1004414c]
movsx ecx, byte [0x10044076]
movsx edx, byte [0x10044077]
sub ecx, edx
sub eax, ecx
mov byte [0x100440d3], al
jmp 0x1001ab2a
movsx eax, byte [ebp - 4]
test eax, eax
je 0x1001ab2a
cmp dword [0x10044120], 0
jne 0x1001ab0c
mov ecx, 1
mov word [ebp - 0x64], cx
jmp 0x1001ab12
xor edx, edx
mov word [ebp - 0x64], dx
mov ax, word [ebp - 0x64]
mov word [0x10044198], ax
mov cx, word [0x10044ca8]
mov word [0x100441b0], cx
cmp dword [ebp - 0x68], 0
jne 0x1001ae7f
movzx edx, word [ebp - 0xc]
movzx eax, word [ebp - 0x10]
cmp edx, eax
je 0x1001ab4c
mov dword [ebp - 0x118], 1
jmp 0x1001ab56
mov dword [ebp - 0x118], 0
movzx ecx, word [ebp - 0xc]
cmp ecx, 0x16
je 0x1001ab6b
mov dword [ebp - 0x11c], 1
jmp 0x1001ab75
mov dword [ebp - 0x11c], 0
mov edx, dword [ebp - 0x118]
cmp edx, dword [ebp - 0x11c]
je 0x1001abaf
movsx eax, word [0x10044180]
cdq
mov ecx, eax
sub ecx, 0x8e7e7e51
mov eax, dword [ebp - 0x34]
cdq
add eax, ecx
mov dword [ebp - 0x34], eax
movzx edx, word [0x100441b0]
shl edx, 4
mov word [0x1004419c], dx
jmp 0x1001abdb
mov al, byte [0x10044ca8]
mov byte [0x1004403b], al
xor ecx, ecx
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
add edx, dword [ebp - 0x30]
adc eax, ecx
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
push eax
push edx
push esi
push ecx
call fcn.10026530
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov edx, dword [0x10044148]
cmp edx, dword [0x10044120]
jbe 0x1001ae06
xor eax, eax
mov dword [ebp - 0x3c], 3
mov dword [ebp - 0x38], eax
movzx ecx, byte [ebp - 6]
test ecx, ecx
je 0x1001ac15
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x210], edx
mov dword [ebp - 0x20c], eax
jmp 0x1001ac27
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x210], ecx
mov dword [ebp - 0x20c], edx
mov al, byte [ebp - 0x210]
mov byte [0x1004409f], al
mov eax, dword [0x10044188]
cdq
add eax, dword [0x10044110]
mov dword [0x10044188], eax
mov ecx, dword [0x10044158]
add ecx, 0x6b
mov byte [ebp - 4], cl
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0xbc], edx
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 0
jl 0x1001ae04
jg 0x1001ac7d
cmp dword [ebp - 0xbc], 0
jb 0x1001ae04
cmp dword [ebp - 0xb8], 0
jg 0x1001ae04
jl 0x1001ac99
cmp dword [ebp - 0xbc], 3
ja 0x1001ae04
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x434], ecx
mov edx, dword [ebp - 0x434]
jmp dword [edx*4 + 0x1001ca68]
jmp 0x1001ae78
cmp dword [ebp - 0x20], 0
jne 0x1001ae18
mov dword [ebp - 0x12c], 1
jmp 0x1001ae22
mov dword [ebp - 0x12c], 0
movzx eax, word [ebp - 0x10]
sub eax, dword [ebp - 0x12c]
cdq
or eax, dword [ebp - 0x4c]
or edx, dword [ebp - 0x48]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x34]
xor eax, 0x4e31
mov dword [ebp - 0x20], eax
movsx ecx, byte [ebp - 1]
test ecx, ecx
je 0x1001ae5b
movsx edx, byte [0x1004404e]
mov dword [ebp - 0x130], edx
jmp 0x1001ae66
mov eax, dword [0x1004411c]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x130]
cdq
mov dword [0x10044140], eax
mov dword [0x10044144], edx
xor eax, eax
jmp 0x1001ca3b
mov eax, dword [ebp - 0x34]
cdq
mov ecx, dword [0x10044128]
mov esi, dword [0x1004412c]
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], edx
mov dword [ebp - 0x288], ecx
mov dword [ebp - 0x284], esi
mov edx, dword [ebp - 0x27c]
cmp edx, dword [ebp - 0x284]
jg 0x1001aed1
jl 0x1001aec5
mov eax, dword [ebp - 0x280]
cmp eax, dword [ebp - 0x288]
jae 0x1001aed1
mov dword [ebp - 0x134], 1
jmp 0x1001aedb
mov dword [ebp - 0x134], 0
cmp dword [ebp - 0x34], 0x1c
jge 0x1001aeed
mov dword [ebp - 0x138], 1
jmp 0x1001aef7
mov dword [ebp - 0x138], 0
mov ecx, dword [ebp - 0x134]
cmp ecx, dword [ebp - 0x138]
jl 0x1001af89
mov dword [ebp - 0x80], 0x19
mov eax, dword [0x1004416c]
cdq
add eax, 0xc49286fd
mov dword [0x1004411c], eax
mov edx, dword [0x10044138]
add edx, 0xed069b6
mov byte [0x1004409f], dl
mov eax, dword [ebp - 0x2c]
cdq
mov ecx, 8
shl ecx, 0
mov dword [ecx + 0x101f04f8], eax
mov dword [ecx + 0x101f04fc], edx
push 0
push 0
push 0
push 0x6b
call fcn.1001d9b0
add esp, 0x10
mov dword [0x10044168], eax
movzx edx, word [ebp - 0x10]
test edx, edx
jne 0x1001af77
movsx eax, byte [0x1004403b]
sub eax, dword [0x10044188]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x80]
add edx, 1
mov dword [ebp - 0x80], edx
cmp dword [ebp - 0x80], 0x1b35
jl 0x1001af4a
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
mov eax, dword [ebp + 0xc]
push eax
push 0
push 0
call fcn.10001550
add esp, 8
call eax
mov dword [ebp - 0x98], eax
push 0
push 0x84000000
push 0
push 0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x68]
push edx
push 0
push 0
call fcn.10001670
add esp, 8
call eax
mov dword [ebp - 0x194], eax
push 0
push 0x44
push 0x9b
push 0
call fcn.1001cdc0
add esp, 0x10
mov byte [ebp - 2], al
movzx eax, byte [ebp - 2]
test eax, eax
je 0x1001b053
mov dword [ebp - 0x84], 0x2655
cmp dword [ebp - 0x84], 0x25e0
jle 0x1001b04e
movzx eax, byte [ebp - 2]
not eax
movzx ecx, word [0x10044198]
add eax, ecx
not eax
cdq
mov edx, dword [ebp - 0x60]
sub edx, dword [ebp - 0x60]
sub eax, edx
mov byte [ebp - 4], al
mov eax, dword [0x10044ca8]
xor ecx, ecx
mov dword [0x10044140], eax
mov dword [0x10044144], ecx
mov edx, dword [ebp - 0x84]
sub edx, 1
mov dword [ebp - 0x84], edx
jmp 0x1001b002
jmp 0x1001b143
movzx eax, word [0x1004418c]
test eax, eax
je 0x1001b08a
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
push 0x26ca9
push 0x50a0d29
push edx
push ecx
call fcn.10026530
mov dword [0x10044120], eax
mov eax, dword [0x10044184]
shr eax, 8
mov byte [ebp - 1], al
jmp 0x1001b143
mov ecx, dword [ebp - 0x44]
or ecx, dword [ebp - 0x40]
je 0x1001b0aa
mov edx, dword [0x1004416c]
not edx
test edx, edx
je 0x1001b0aa
mov dword [ebp - 0x13c], 1
jmp 0x1001b0b4
mov dword [ebp - 0x13c], 0
movsx eax, byte [0x1004404d]
not eax
cdq
mov dword [ebp - 0x290], eax
mov dword [ebp - 0x28c], edx
mov eax, dword [ebp - 0x28c]
cmp eax, dword [0x10044144]
jg 0x1001b0f4
jl 0x1001b0e8
mov ecx, dword [ebp - 0x290]
cmp ecx, dword [0x10044140]
ja 0x1001b0f4
mov dword [ebp - 0x140], 1
jmp 0x1001b0fe
mov dword [ebp - 0x140], 0
mov edx, dword [ebp - 0x13c]
cmp edx, dword [ebp - 0x140]
je 0x1001b124
movzx eax, byte [0x1004409f]
sar eax, 3
cdq
mov dword [0x10044138], eax
mov dword [0x1004413c], edx
jmp 0x1001b143
movsx eax, byte [0x1004403b]
not eax
test eax, eax
je 0x1001b143
movsx eax, byte [0x100440fb]
cdq
add eax, 0x37a55a40
mov byte [0x1004403b], al
cmp dword [ebp - 0x194], 0
jne 0x1001b8e3
mov dword [ebp - 0x88], 0
jmp 0x1001b16b
mov ecx, dword [ebp - 0x88]
add ecx, 2
mov dword [ebp - 0x88], ecx
cmp dword [ebp - 0x88], 0x3a4
jge 0x1001b1b2
movsx edx, word [0x1004419c]
sub edx, 0xca
movzx eax, byte [0x100440d3]
and eax, edx
mov byte [0x100440d3], al
movzx eax, byte [ebp - 2]
cdq
sub eax, 0x37c3e591
mov dword [0x10044118], eax
mov ecx, dword [0x1004411c]
add ecx, 1
mov dword [0x1004411c], ecx
jmp 0x1001b15c
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov eax, dword [0x10044108]
cdq
mov dword [ebp - 0x298], ecx
mov dword [ebp - 0x294], esi
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x29c], edx
mov edx, dword [ebp - 0x294]
cmp edx, dword [ebp - 0x29c]
jg 0x1001b200
jl 0x1001b1f4
mov eax, dword [ebp - 0x298]
cmp eax, dword [ebp - 0x2a0]
ja 0x1001b200
mov dword [ebp - 0x144], 1
jmp 0x1001b20a
mov dword [ebp - 0x144], 0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2a8], edx
cmp dword [ebp - 0x2a8], 0
jg 0x1001b23c
jl 0x1001b230
cmp dword [ebp - 0x2ac], 0x3d
ja 0x1001b23c
mov dword [ebp - 0x148], 1
jmp 0x1001b246
mov dword [ebp - 0x148], 0
mov eax, dword [ebp - 0x144]
cmp eax, dword [ebp - 0x148]
jg 0x1001b28d
mov cl, byte [ebp - 3]
sub cl, 1
mov byte [ebp - 3], cl
movzx eax, byte [ebp - 3]
cdq
mov ecx, dword [ebp - 0x4c]
sub ecx, eax
mov eax, dword [ebp - 0x48]
sbb eax, edx
add ecx, dword [ebp - 0x4c]
adc eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], eax
movsx ecx, word [0x1004419c]
sub ecx, 0x734dcee5
mov dword [0x10044170], ecx
jmp 0x1001b2a1
movzx edx, word [0x10044198]
movzx eax, byte [ebp - 6]
sub edx, eax
mov word [0x10044198], dx
mov ecx, dword [0x10044ca8]
mov dword [ebp - 0x90], ecx
movsx eax, byte [ebp - 4]
cdq
mov ecx, dword [0x10044128]
mov esi, dword [0x1004412c]
sub ecx, eax
sbb esi, edx
mov edx, dword [0x10044128]
mov eax, dword [0x1004412c]
sub edx, ecx
sbb eax, esi
mov dword [0x10044128], edx
mov dword [0x1004412c], eax
mov ecx, dword [ebp - 0x90]
add ecx, 0x67d
mov dword [ebp - 0x3d8], ecx
movsx edx, byte [0x10044077]
movsx eax, byte [ebp - 1]
cmp edx, eax
jg 0x1001b309
mov dword [ebp - 0x14c], 1
jmp 0x1001b313
mov dword [ebp - 0x14c], 0
movsx ecx, byte [0x10044077]
cmp ecx, 0x1a
jg 0x1001b32b
mov dword [ebp - 0x150], 1
jmp 0x1001b335
mov dword [ebp - 0x150], 0
mov edx, dword [ebp - 0x14c]
cmp edx, dword [ebp - 0x150]
jle 0x1001b3ca
mov dword [ebp - 0x8c], 0
jmp 0x1001b362
mov eax, dword [ebp - 0x8c]
add eax, 2
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0x171
jge 0x1001b3ca
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x3dc], edx
sub ecx, 8
movzx eax, byte [ebp - 2]
cdq
add eax, ecx
mov byte [ebp - 2], al
movsx eax, word [0x1004419c]
sub eax, 0xc23
mov byte [0x10044076], al
mov ecx, dword [0x10044194]
xor edx, edx
push 0x934bc
push 0xa18d239a
push edx
push ecx
call fcn.10026530
mov dword [0x10044110], eax
mov dword [0x10044114], edx
mov al, byte [0x1004404f]
add al, 1
mov byte [0x1004404f], al
jmp 0x1001b353
mov ecx, dword [ebp - 0x90]
add ecx, 0x6dc
mov dword [ebp - 0x160], ecx
mov dword [ebp - 0x30], 4
movsx eax, byte [0x1004409e]
cdq
mov edx, 0xd8185b58
sub edx, eax
mov word [ebp - 0xc], dx
movsx eax, byte [0x1004409e]
cdq
push 0x7a36
push 0x88d238e7
push edx
push eax
call fcn.10026530
mov word [ebp - 0x14], ax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x154], 4
ja case.default.0x1001b42f
mov ecx, dword [ebp - 0x154]
jmp dword [ecx*4 + 0x1001ca78]
mov edx, 0xdd8bb
mov dword [ebp - 0x44], 0xdbcc4caf
mov dword [ebp - 0x40], edx
jmp case.default.0x1001b42f
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
add eax, dword [ebp - 0x4c]
adc ecx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
mov edx, 0xffffafda
mov word [0x1004419c], dx
mov al, byte [ebp - 2]
add al, 1
mov byte [ebp - 2], al
jmp case.default.0x1001b42f
mov ecx, 0xe49c
mov word [ebp - 0x10], cx
jmp case.default.0x1001b42f
movsx eax, byte [0x10044077]
cdq
push 0xda240
push 0x18c7f049
push edx
push eax
call fcn.10026530
mov dword [ebp - 0x34], eax
jmp case.default.0x1001b42f
movzx edx, byte [0x100440d3]
movsx eax, word [ebp - 0x14]
add edx, eax
mov word [0x10044180], dx
mov ecx, dword [ebp - 0x90]
add ecx, 0x352
mov dword [ebp - 0x3e0], ecx
movzx edx, byte [0x1004409f]
cmp dword [ebp - 0x34], edx
jge 0x1001b596
movsx eax, word [0x1004419c]
cdq
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2b0], edx
mov eax, dword [0x10044130]
cmp eax, dword [ebp - 0x2b4]
jne 0x1001b509
mov ecx, dword [0x10044134]
cmp ecx, dword [ebp - 0x2b0]
jne 0x1001b509
mov dword [ebp - 0x158], 1
jmp 0x1001b513
mov dword [ebp - 0x158], 0
cmp dword [0x10044130], 0x49
jne 0x1001b531
cmp dword [0x10044134], 0
jne 0x1001b531
mov dword [ebp - 0x15c], 1
jmp 0x1001b53b
mov dword [ebp - 0x15c], 0
mov edx, dword [ebp - 0x158]
cmp edx, dword [ebp - 0x15c]
jne 0x1001b596
movsx eax, byte [ebp - 1]
movsx ecx, word [0x10044180]
sub eax, ecx
movsx edx, byte [ebp - 1]
sub edx, eax
mov byte [ebp - 1], dl
movzx eax, word [0x1004418c]
cdq
xor eax, dword [ebp - 0x4c]
xor edx, dword [ebp - 0x48]
movsx ecx, byte [0x10044076]
mov esi, dword [ebp - 0x30]
xor esi, ecx
xor ecx, ecx
push ecx
push esi
push edx
push eax
call fcn.10026530
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov dl, byte [0x10044ca8]
mov byte [0x1004404e], dl
mov eax, 0x110
sub eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x160]
add ecx, 0x297
cmp eax, ecx
je 0x1001b8e3
movzx edx, byte [0x100440d3]
cmp edx, dword [ebp - 0x2c]
jl 0x1001b5ff
movzx eax, word [ebp - 0xc]
cdq
mov ecx, eax
mov esi, edx
xor ecx, dword [ebp - 0x60]
xor esi, dword [ebp - 0x5c]
not ecx
not esi
movsx eax, byte [ebp - 4]
cdq
sub eax, dword [0x10044110]
sbb edx, dword [0x10044114]
push edx
push eax
push esi
push ecx
call fcn.10026530
mov byte [ebp - 2], al
mov edx, dword [ebp - 0x60]
sub edx, 0x7b
mov dword [0x1004411c], edx
jmp 0x1001b65c
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x2b8], ecx
mov edx, dword [ebp - 0x2bc]
or edx, dword [ebp - 0x2b8]
jne 0x1001b625
mov byte [ebp - 4], 0x2f
jmp 0x1001b65c
mov eax, 0x2abdc3fe
or eax, 0xc2683
je 0x1001b65c
mov ecx, 0xd7131
mov dword [0x100441a8], 0x226f490f
mov dword [0x100441ac], ecx
mov edx, dword [0x10044190]
xor edx, 0x71dd
movzx eax, word [ebp - 0x10]
add eax, edx
mov word [ebp - 0x10], ax
mov ecx, dword [ebp - 0x98]
push ecx
push 0
push 0
call fcn.100016d0
add esp, 8
call eax
mov edx, dword [ebp - 0x68]
push edx
push 0
push 0
call fcn.10001400
add esp, 8
call eax
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x48]
je 0x1001b6dd
movsx ecx, byte [0x1004404e]
imul edx, ecx, 0x9a
mov dword [0x10044164], edx
cmp dword [0x10044120], 0
je 0x1001b6bb
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x214], ecx
jmp 0x1001b6cc
movzx eax, byte [ebp - 3]
cdq
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x214], edx
mov edx, dword [ebp - 0x218]
mov dword [0x10044160], edx
jmp 0x1001b8dc
movzx eax, byte [ebp - 2]
test eax, eax
jne 0x1001b6fa
cmp dword [0x1004416c], 0
jne 0x1001b6fa
mov dword [ebp - 0x164], 1
jmp 0x1001b704
mov dword [ebp - 0x164], 0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
not ecx
not edx
mov dword [ebp - 0x2c4], ecx
mov dword [ebp - 0x2c0], edx
mov eax, dword [ebp - 0x2c0]
cmp eax, dword [0x1004415c]
ja 0x1001b744
jb 0x1001b738
mov ecx, dword [ebp - 0x2c4]
cmp ecx, dword [0x10044158]
ja 0x1001b744
mov dword [ebp - 0x168], 1
jmp 0x1001b74e
mov dword [ebp - 0x168], 0
mov edx, dword [ebp - 0x164]
cmp edx, dword [ebp - 0x168]
jl 0x1001b768
mov dword [ebp - 0x16c], 1
jmp 0x1001b772
mov dword [ebp - 0x16c], 0
mov eax, dword [ebp - 0x16c]
not eax
test eax, eax
je 0x1001b7a9
movzx cx, byte [ebp - 3]
mov word [ebp - 0x14], cx
movzx eax, byte [0x100440fa]
cdq
add eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x30]
not edx
movsx ecx, byte [ebp - 4]
add edx, ecx
add eax, edx
mov dword [0x10044148], eax
jmp 0x1001b8dc
movzx edx, byte [ebp - 3]
test edx, edx
jne 0x1001b7bd
mov dword [ebp - 0x170], 1
jmp 0x1001b7c7
mov dword [ebp - 0x170], 0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x2cc], eax
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0x2cc]
or edx, dword [ebp - 0x2c8]
je 0x1001b7ff
mov eax, 0x7e015960
or eax, 0x70ffa
jne 0x1001b7ff
mov dword [ebp - 0x174], 0
jmp 0x1001b809
mov dword [ebp - 0x174], 1
mov ecx, dword [ebp - 0x170]
sub ecx, dword [ebp - 0x174]
je 0x1001b867
movsx edx, byte [0x1004403b]
movzx eax, word [ebp - 0xc]
add edx, eax
movsx ecx, byte [0x1004403b]
imul ecx, edx
mov byte [0x1004403b], cl
movzx eax, byte [0x1004409f]
cdq
mov ecx, dword [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x44]
push ecx
push edx
push eax
call fcn.10026530
mov ecx, eax
mov esi, edx
movzx eax, byte [0x1004409f]
cdq
push esi
push ecx
push edx
push eax
call fcn.10026530
mov byte [0x1004409f], al
jmp 0x1001b8dc
movzx edx, byte [ebp - 2]
test edx, edx
jne 0x1001b87b
mov dword [ebp - 0x178], 1
jmp 0x1001b885
mov dword [ebp - 0x178], 0
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x178], eax
jle 0x1001b8dc
movzx ecx, byte [ebp - 6]
imul eax, ecx, 0x798ad745
cdq
push edx
push eax
mov edx, dword [ebp - 0x40]
push edx
mov eax, dword [ebp - 0x44]
push eax
call fcn.10026530
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movzx ecx, word [0x1004418c]
test ecx, ecx
je 0x1001b8c6
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x17c], edx
jmp 0x1001b8d1
mov eax, dword [0x10044118]
mov dword [ebp - 0x17c], eax
mov cx, word [ebp - 0x17c]
mov word [ebp - 0x10], cx
xor eax, eax
jmp 0x1001ca3b
movsx edx, word [ebp - 0x14]
test edx, edx
je 0x1001bb98
mov eax, dword [0x10044168]
cdq
push edx
push eax
movzx eax, word [0x1004414c]
cdq
push edx
push eax
call fcn.1001d9b0
add esp, 0x10
mov dword [0x10044158], eax
mov dword [0x1004415c], edx
movzx eax, byte [0x100440be]
sub eax, dword [ebp - 0x2c]
not eax
test eax, eax
je 0x1001bb1e
mov ecx, 1
mov word [0x1004410c], cx
movzx edx, byte [ebp - 6]
sub edx, 0x152f5231
jne 0x1001b94c
mov dword [ebp - 0x180], 1
jmp 0x1001b956
mov dword [ebp - 0x180], 0
movsx eax, byte [0x100440fb]
movsx ecx, byte [ebp - 1]
add eax, ecx
sub eax, dword [ebp - 0x180]
mov word [ebp - 0x14], ax
movsx edx, word [0x100440fc]
imul eax, edx, 0x2d
mov dword [0x10044108], eax
mov ecx, dword [0x10044ca8]
mov dword [ebp - 0x20], ecx
movzx edx, word [0x1004410c]
mov dword [ebp - 0x184], edx
cmp dword [ebp - 0x184], 0
je 0x1001b9ad
cmp dword [ebp - 0x184], 1
je 0x1001bae9
jmp 0x1001bb1c
mov eax, dword [0x1004411c]
cdq
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x2d4], ecx
mov dword [ebp - 0x2d0], esi
mov edx, dword [ebp - 0x2d4]
or edx, dword [ebp - 0x2d0]
jne 0x1001b9eb
xor eax, eax
mov dword [ebp - 0x228], 1
mov dword [ebp - 0x224], eax
jmp 0x1001b9f6
xorps xmm0, xmm0
movlpd qword [ebp - 0x228], xmm0
movsx ecx, byte [ebp - 4]
test ecx, ecx
jne 0x1001ba12
xor edx, edx
mov dword [ebp - 0x220], 1
mov dword [ebp - 0x21c], edx
jmp 0x1001ba1d
xorps xmm0, xmm0
movlpd qword [ebp - 0x220], xmm0
movzx eax, byte [ebp - 5]
imul eax, dword [0x10044194]
test eax, eax
jne 0x1001ba38
mov dword [ebp - 0x188], 1
jmp 0x1001ba42
mov dword [ebp - 0x188], 0
mov ecx, dword [ebp - 0x220]
add ecx, 0x2f0d7db5
mov edx, dword [ebp - 0x21c]
adc edx, 0x4a3a6
mov esi, dword [ebp - 0x228]
sub esi, ecx
mov ecx, dword [ebp - 0x224]
sbb ecx, edx
mov eax, dword [ebp - 0x188]
and eax, 0x765d
not eax
cdq
add esi, eax
adc ecx, edx
mov dword [ebp - 0x2dc], esi
mov dword [ebp - 0x2d8], ecx
mov edx, dword [ebp - 0x2dc]
or edx, dword [ebp - 0x2d8]
jne 0x1001baaa
xor eax, eax
mov dword [ebp - 0x230], 1
mov dword [ebp - 0x22c], eax
jmp 0x1001bab5
xorps xmm0, xmm0
movlpd qword [ebp - 0x230], xmm0
mov ecx, dword [ebp - 0x230]
mov edx, dword [ebp - 0x22c]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
movsx eax, byte [ebp - 1]
movzx ecx, byte [ebp - 2]
sub eax, ecx
movsx edx, byte [ebp - 1]
sub edx, eax
mov byte [ebp - 1], dl
movsx eax, byte [0x1004403b]
add eax, 0x4d
mov byte [ebp - 1], al
jmp 0x1001bb1c
mov ecx, dword [ebp - 0x30]
imul ecx, dword [0x10044148]
mov edx, dword [ebp - 0x30]
imul edx, ecx
mov dword [ebp - 0x30], edx
xor eax, eax
mov dword [0x10044178], 0x117d1d06
mov dword [0x1004417c], eax
mov ecx, dword [0x10044194]
sub ecx, 0x24087067
mov byte [ebp - 1], cl
jmp 0x1001bb98
movsx edx, byte [0x1004404d]
or edx, dword [0x10044120]
je 0x1001bb49
movzx eax, byte [ebp - 2]
imul eax, dword [0x10044170]
or eax, dword [0x10044170]
mov dword [0x10044170], eax
mov byte [ebp - 1], 0
jmp 0x1001bb98
movsx ecx, byte [ebp - 1]
cmp ecx, 0x86863440
jg 0x1001bb61
mov dword [ebp - 0x18c], 1
jmp 0x1001bb6b
mov dword [ebp - 0x18c], 0
cmp dword [ebp - 0x18c], 0
jl 0x1001bb98
movzx eax, byte [ebp - 5]
sar eax, 7
cdq
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
movsx edx, byte [ebp - 1]
add edx, 0x9994
mov word [ebp - 0x10], dx
mov eax, dword [0x10044108]
mov dword [ebp - 0x30], eax
movsx ecx, byte [0x10044077]
test ecx, ecx
je 0x1001bd3c
xor edx, edx
mov dword [ebp - 0x3c], 3
mov dword [ebp - 0x38], edx
mov eax, dword [0x10044ca8]
mov dword [ebp - 0x2c], eax
mov ecx, 0xb35a
mov word [0x1004418c], cx
movsx eax, byte [ebp - 1]
add eax, dword [ebp - 0x2c]
cdq
mov ecx, eax
movzx eax, byte [0x100440fa]
cdq
mov edx, dword [0x10044100]
mov esi, dword [0x10044104]
mov dword [ebp - 0x3e4], esi
add edx, eax
sub ecx, edx
mov byte [ebp - 3], cl
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], ecx
cmp dword [ebp - 0xc0], 0
jl 0x1001bd3c
jg 0x1001bc20
cmp dword [ebp - 0xc4], 0
jb 0x1001bd3c
cmp dword [ebp - 0xc0], 0
jg 0x1001bd3c
jl 0x1001bc3c
cmp dword [ebp - 0xc4], 3
ja 0x1001bd3c
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x43c], edx
mov eax, dword [ebp - 0x43c]
jmp dword [eax*4 + 0x1001ca8c]
push 4
push 0x3000
push 0x100000
push 0
push 0
push 0
call fcn.10001340
add esp, 8
call eax
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub ecx, 0xa8be
sbb edx, 0
mov dword [0x100441a8], ecx
mov dword [0x100441ac], edx
mov eax, dword [ebp - 0x30]
add eax, dword [0x10044110]
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x1a4]
push ecx
push 0x100000
mov edx, dword [ebp - 0x6c]
push edx
mov eax, dword [ebp - 0x194]
push eax
push 0
push 0
call fcn.100014f0
add esp, 8
call eax
test eax, eax
je 0x1001bdb4
cmp dword [ebp - 0x1a4], 0
jne 0x1001bdd7
movsx cx, byte [0x1004409e]
mov word [ebp - 0x10], cx
movzx eax, word [0x1004410c]
cdq
sub eax, 0xa25e10de
mov dword [0x10044188], eax
jmp 0x1001c1ff
mov dword [ebp - 0x94], 0x55
movzx edx, byte [0x1004404f]
imul eax, edx, 0xa
movzx ecx, word [ebp - 0x10]
add ecx, eax
mov word [ebp - 0x10], cx
mov edx, 4
imul eax, edx, 0xc77
movsx ecx, byte [0x100440bf]
xor ecx, dword [eax + 0x101f0c10]
mov byte [0x100440bf], cl
mov edx, dword [0x10044ca8]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x20], 0x81768024
movzx eax, byte [0x100440fa]
cdq
push 0xd1442
push 0x324a32d1
push edx
push eax
call fcn.10026530
mov word [ebp - 0xc], ax
movsx eax, byte [0x10044076]
cdq
push edx
push eax
mov eax, dword [0x100441ac]
push eax
mov ecx, dword [0x100441a8]
push ecx
call fcn.10026530
add eax, dword [0x100441a8]
adc edx, dword [0x100441ac]
mov dword [0x100441a8], eax
mov dword [0x100441ac], edx
mov edx, dword [ebp - 0x94]
add edx, 1
mov dword [ebp - 0x94], edx
cmp dword [ebp - 0x94], 0x1c1e
jl 0x1001be1c
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x330], eax
cmp dword [0x1004416c], 0
je 0x1001c157
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x2e4], ecx
mov dword [ebp - 0x2e0], edx
mov eax, dword [ebp - 0x2e4]
or eax, dword [ebp - 0x2e0]
je 0x1001c134
movzx ecx, word [0x1004418c]
movsx edx, byte [ebp - 4]
not edx
cmp ecx, edx
je 0x1001beed
xor eax, eax
mov dword [ebp - 0x238], 1
mov dword [ebp - 0x234], eax
jmp 0x1001bef8
xorps xmm0, xmm0
movlpd qword [ebp - 0x238], xmm0
movsx eax, word [0x100440fc]
cdq
sub eax, dword [ebp - 0x60]
sbb edx, dword [ebp - 0x5c]
mov dword [ebp - 0x2ec], eax
mov dword [ebp - 0x2e8], edx
mov ecx, dword [ebp - 0x234]
cmp ecx, dword [ebp - 0x2e8]
jl 0x1001bf3c
jg 0x1001bf30
mov edx, dword [ebp - 0x238]
cmp edx, dword [ebp - 0x2ec]
jb 0x1001bf3c
mov dword [ebp - 0x19c], 1
jmp 0x1001bf46
mov dword [ebp - 0x19c], 0
mov eax, dword [0x10044138]
or eax, dword [0x1004413c]
je 0x1001bf63
xor ecx, ecx
je 0x1001bf63
mov dword [ebp - 0x198], 1
jmp 0x1001bf6d
mov dword [ebp - 0x198], 0
mov eax, dword [ebp - 0x198]
not eax
cdq
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2f0], edx
mov dword [ebp - 0x33c], ecx
mov dword [ebp - 0x338], esi
mov edx, dword [ebp - 0x2f0]
cmp edx, dword [ebp - 0x338]
jb 0x1001bfbe
ja 0x1001bfb2
mov eax, dword [ebp - 0x2f4]
cmp eax, dword [ebp - 0x33c]
jb 0x1001bfbe
mov dword [ebp - 0x1a0], 1
jmp 0x1001bfc8
mov dword [ebp - 0x1a0], 0
mov ecx, dword [ebp - 0x19c]
not ecx
or ecx, dword [ebp - 0x1a0]
je 0x1001c01d
mov edx, dword [0x10044194]
imul edx, dword [ebp - 0x30]
mov eax, dword [0x10044194]
add eax, edx
mov dword [0x10044194], eax
movzx eax, word [ebp - 0x10]
add eax, 0xc0
cdq
push edx
push eax
mov ecx, dword [0x10044134]
push ecx
mov edx, dword [0x10044130]
push edx
call fcn.10026530
mov dword [0x10044130], eax
mov dword [0x10044134], edx
jmp 0x1001c132
mov eax, dword [0x10044100]
mov ecx, dword [0x10044104]
mov dword [ebp - 0x2fc], eax
mov dword [ebp - 0x2f8], ecx
mov edx, dword [ebp - 0x2fc]
or edx, dword [ebp - 0x2f8]
je 0x1001c132
movzx eax, word [ebp - 0x10]
cdq
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], esi
movsx edx, byte [ebp - 4]
test edx, edx
jne 0x1001c077
xor eax, eax
mov dword [ebp - 0x1f0], 1
mov dword [ebp - 0x1ec], eax
jmp 0x1001c082
xorps xmm0, xmm0
movlpd qword [ebp - 0x1f0], xmm0
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
sub ecx, dword [ebp - 0x1f0]
sbb esi, dword [ebp - 0x1ec]
movzx eax, word [0x10044198]
movsx edx, byte [0x1004403b]
sub eax, edx
not eax
cdq
xor ecx, eax
xor esi, edx
mov dword [ebp - 0x304], ecx
mov dword [ebp - 0x300], esi
mov eax, dword [ebp - 0x304]
or eax, dword [ebp - 0x300]
jne 0x1001c0d9
xor ecx, ecx
mov dword [ebp - 0x30c], 1
mov dword [ebp - 0x308], ecx
jmp 0x1001c0e4
xorps xmm0, xmm0
movlpd qword [ebp - 0x30c], xmm0
movzx eax, word [0x1004414c]
not eax
cdq
mov ecx, dword [ebp - 0x44]
not ecx
mov esi, dword [ebp - 0x40]
not esi
and eax, ecx
and edx, esi
mov ecx, dword [ebp - 0x2c]
xor ecx, 0xcec3dc31
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.10026530
add eax, dword [ebp - 0x30c]
mov byte [0x100440be], al
mov ecx, 8
shl ecx, 2
movsx eax, word [ebp - 0x14]
cdq
and eax, dword [ecx + 0x100b3e28]
mov word [ebp - 0x14], ax
jmp 0x1001c157
mov ecx, dword [0x10044100]
mov edx, dword [0x10044104]
mov dword [ebp - 0x3e8], edx
xor ecx, 0x2a26
movzx eax, word [ebp - 0xc]
cdq
xor eax, ecx
mov word [ebp - 0xc], ax
mov eax, dword [ebp - 0x330]
movzx ecx, word [eax]
cmp ecx, 0x5a4d
je 0x1001c175
cmp dword [ebp - 0x70], 0
jne 0x1001c175
jmp 0x1001c1ff
movsx eax, byte [0x1004409e]
movzx edx, word [ebp - 0x10]
sub eax, edx
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov eax, dword [0x10044178]
mov dword [ebp - 0x20], eax
movzx eax, byte [0x100440be]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x4c]
movzx eax, byte [0x100440be]
cdq
sub eax, ecx
mov byte [0x100440be], al
push 0
lea edx, [ebp - 0x3ec]
push edx
mov eax, dword [ebp - 0x1a4]
push eax
mov ecx, dword [ebp - 0x6c]
push ecx
mov edx, dword [ebp - 0x98]
push edx
push 0
push 0
call fcn.100014c0
add esp, 8
call eax
movzx eax, byte [ebp - 5]
add eax, dword [0x10044194]
movzx ecx, byte [ebp - 5]
add ecx, eax
mov byte [ebp - 5], cl
mov edx, dword [ebp - 0x70]
add edx, 1
mov dword [ebp - 0x70], edx
mov eax, 1
test eax, eax
jne 0x1001bb98
mov ecx, dword [ebp - 0x98]
push ecx
push 0
push 0
call fcn.100016d0
add esp, 8
call eax
mov edx, dword [ebp - 0x68]
push edx
push 0
push 0
call fcn.10001400
add esp, 8
call eax
push 0x8000
push 0
mov eax, dword [ebp - 0x6c]
push eax
push 0
push 0
call fcn.10001370
add esp, 8
call eax
push 0x10036370
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
xor ecx, ecx
mov dword [0x10044128], eax
mov dword [0x1004412c], ecx
cmp dword [ebp - 0x70], 0
jne 0x1001c7f3
mov byte [0x100440be], 3
mov ecx, dword [ebp - 0x4c]
add ecx, 0x898
movzx eax, word [0x1004414c]
cdq
sub eax, ecx
mov word [0x1004414c], ax
movsx edx, word [0x1004419c]
and edx, 0x2e
mov word [0x1004418c], dx
movzx eax, byte [0x100440be]
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1a8], 3
ja case.default.0x1001c2b2
mov ecx, dword [ebp - 0x1a8]
jmp dword [ecx*4 + 0x1001ca9c]
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x44]
not esi
mov eax, dword [0x10044168]
not eax
cdq
sub esi, eax
movsx eax, byte [ebp - 1]
movzx edx, byte [0x100440d3]
imul eax, edx
cdq
sub esi, eax
add ecx, esi
mov byte [ebp - 1], cl
movsx eax, byte [0x1004409e]
add eax, 0xccde9a8
mov byte [0x10044076], al
movsx eax, byte [0x1004409e]
add eax, 0xc7e9
cdq
mov dword [0x100441a8], eax
mov dword [0x100441ac], edx
jmp case.default.0x1001c2b2
movsx ecx, word [0x100440fc]
mov edx, dword [ebp - 0x2c]
imul edx, dword [ebp - 0x30]
sub ecx, edx
xor eax, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
jmp case.default.0x1001c2b2
movsx ecx, byte [0x10044077]
xor ecx, 0x9f8d
mov dword [0x10044160], ecx
mov edx, 8
shl edx, 2
mov eax, dword [edx + 0x101dad58]
mov ecx, dword [edx + 0x101dad5c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
jmp case.default.0x1001c2b2
mov edx, dword [0x100441a8]
mov eax, dword [0x100441ac]
mov dword [0x10044100], edx
mov dword [0x10044104], eax
mov dword [0x10044188], 0
movsx eax, byte [0x1004403b]
cdq
add eax, 0xc6dcbda4
mov word [ebp - 0x14], ax
mov ecx, dword [0x10044188]
mov dword [ebp - 0x3f0], ecx
mov edx, dword [0x10044ca8]
mov dword [ebp - 0xa0], edx
mov eax, dword [0x10044148]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x1001c468
push 0
push 0
push 0
push 0x20
call fcn.1001d0c0
add esp, 0x10
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x1001c3fc
movzx ecx, word [ebp - 0xc]
imul eax, ecx, 0xf82e
cdq
mov dword [0x100441a8], eax
mov dword [0x100441ac], edx
movsx edx, byte [0x1004404e]
add edx, 0x7882
mov word [0x10044174], dx
jmp 0x1001c466
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov edx, dword [0x1004412c]
sub eax, dword [0x10044128]
sbb ecx, edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
movzx eax, byte [ebp - 5]
test eax, eax
jne 0x1001c42a
mov dword [ebp - 0x1ac], 1
jmp 0x1001c434
mov dword [ebp - 0x1ac], 0
mov ecx, dword [0x10044118]
xor ecx, dword [ebp - 0x2c]
not ecx
imul ecx, dword [ebp - 0x1ac]
mov byte [ebp - 4], cl
movzx eax, byte [0x1004404f]
cdq
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
push edx
push eax
push esi
push ecx
call fcn.10026530
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
jmp 0x1001c4ac
movzx edx, word [ebp - 0xc]
test edx, edx
je 0x1001c488
mov eax, 0x5597f3f8
or eax, 0x832d5
je 0x1001c488
mov dword [ebp - 0x1b0], 1
jmp 0x1001c492
mov dword [ebp - 0x1b0], 0
movzx ecx, byte [ebp - 3]
cmp dword [ebp - 0x1b0], ecx
je 0x1001c4ac
movzx edx, byte [0x1004409f]
shl edx, 5
mov word [ebp - 0xc], dx
mov eax, dword [ebp - 0xa0]
add eax, 0x66c
mov dword [ebp - 0x3f4], eax
mov dword [ebp - 0x9c], 0
jmp 0x1001c4d8
mov ecx, dword [ebp - 0x9c]
add ecx, 2
mov dword [ebp - 0x9c], ecx
cmp dword [ebp - 0x9c], 0x1b9
jge 0x1001c63c
movsx dx, byte [ebp - 1]
movzx eax, dx
push eax
movzx ecx, word [0x10044198]
push ecx
push 0
push 0
movzx edx, word [0x10044158]
push edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x3f8], ecx
movzx edx, ax
push edx
push 0xeb
call fcn.1001cab0
add esp, 0x1c
cwde
cdq
mov dword [0x10044110], eax
mov dword [0x10044114], edx
cmp dword [0x10044114], 0
ja 0x1001c541
cmp dword [0x10044110], 0
jb 0x1001c54d
mov dword [ebp - 0x1b4], 1
jmp 0x1001c557
mov dword [ebp - 0x1b4], 0
cmp dword [0x10044114], 0
ja 0x1001c569
cmp dword [0x10044110], 0x4b
jb 0x1001c575
mov dword [ebp - 0x1b8], 1
jmp 0x1001c57f
mov dword [ebp - 0x1b8], 0
mov eax, dword [ebp - 0x1b4]
cmp eax, dword [ebp - 0x1b8]
jge 0x1001c5cf
movzx eax, byte [ebp - 3]
cdq
add eax, 0x15a22621
mov word [0x1004414c], ax
movzx ecx, byte [ebp - 5]
test ecx, ecx
je 0x1001c5b4
movzx edx, byte [0x100440fa]
mov dword [ebp - 0x1bc], edx
jmp 0x1001c5c1
movzx eax, word [0x10044198]
mov dword [ebp - 0x1bc], eax
mov cl, byte [ebp - 0x1bc]
mov byte [0x100440fb], cl
jmp 0x1001c62e
cmp dword [ebp - 0x34], 0
jne 0x1001c5e1
mov dword [ebp - 0x1c0], 1
jmp 0x1001c5eb
mov dword [ebp - 0x1c0], 0
movzx edx, byte [0x100440be]
add edx, dword [ebp - 0x1c0]
je 0x1001c62e
mov eax, dword [0x10044160]
cdq
push edx
push eax
mov eax, dword [0x10044114]
push eax
mov ecx, dword [0x10044110]
push ecx
call fcn.10026530
mov ecx, dword [0x10044110]
sub ecx, eax
mov eax, dword [0x10044114]
sbb eax, edx
mov dword [0x10044110], ecx
mov dword [0x10044114], eax
mov cl, byte [ebp - 5]
add cl, 1
mov byte [ebp - 5], cl
jmp 0x1001c4c9
mov edx, dword [ebp - 0xa0]
add edx, 0x5c3
mov dword [ebp - 0x334], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [ebp - 2], al
mov eax, dword [ebp - 0xa0]
add eax, 0x373
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0xa4], 0
jmp 0x1001c683
mov ecx, dword [ebp - 0xa4]
add ecx, 2
mov dword [ebp - 0xa4], ecx
cmp dword [ebp - 0xa4], 0x164
jge 0x1001c6b9
mov edx, 0xa753
mov word [0x1004410c], dx
mov eax, dword [0x10044140]
add eax, 1
mov ecx, dword [0x10044144]
adc ecx, 0
mov dword [0x10044140], eax
mov dword [0x10044144], ecx
jmp 0x1001c674
mov edx, 0x218
sub edx, dword [ebp - 0x334]
mov eax, 0x191
sub eax, dword [ebp - 0x2a4]
cmp edx, eax
je 0x1001c7f3
mov dword [ebp - 0xa8], 0x549
mov eax, dword [0x10044108]
cdq
mov esi, eax
mov edi, edx
mov ecx, dword [0x10044184]
xor edx, edx
mov eax, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x38]
push edx
push ecx
push ebx
push eax
call fcn.10026530
push edx
push eax
push edi
push esi
call fcn.10026530
mov byte [ebp - 6], al
mov eax, dword [0x1004416c]
cdq
mov dword [0x10044130], eax
mov dword [0x10044134], edx
cmp dword [ebp - 0xa8], 0x4ad
jle 0x1001c7cb
movzx ecx, word [ebp - 0xc]
movzx edx, word [ebp - 0xc]
cmp ecx, edx
jge 0x1001c74b
mov eax, dword [ebp - 0x20]
cdq
sub eax, 0xfa78dc65
mov byte [0x100440be], al
jmp 0x1001c7b7
movsx eax, byte [0x1004404d]
test eax, eax
je 0x1001c7b7
cmp dword [ebp - 0x34], 0
jne 0x1001c768
mov dword [ebp - 0x1c4], 1
jmp 0x1001c772
mov dword [ebp - 0x1c4], 0
mov eax, dword [ebp - 0x1c4]
sub eax, 0x38
not eax
movzx ecx, byte [0x100440fa]
movzx edx, byte [ebp - 6]
add ecx, edx
and eax, ecx
not eax
cdq
mov dword [0x100441a8], eax
mov dword [0x100441ac], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
push 0xad566
push 0xa98f4def
push ecx
push eax
call fcn.10026530
mov word [0x1004414c], ax
mov edx, dword [ebp - 0xa8]
sub edx, 1
mov dword [ebp - 0xa8], edx
jmp 0x1001c71f
movzx eax, word [0x1004418c]
not eax
test eax, eax
je 0x1001c7ec
mov ecx, dword [0x10044118]
mov edx, 4
shl edx, 3
mov dword [edx + 0x10259a40], ecx
xor eax, eax
jmp 0x1001ca3b
mov dword [ebp - 0xac], 0x69
jmp 0x1001c80e
mov eax, dword [ebp - 0xac]
sub eax, 1
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
jle 0x1001ca36
push 0
push 0
push 0x13
movzx ecx, word [ebp - 0x14]
push ecx
movsx dx, byte [0x1004403b]
movzx eax, dx
push eax
push 0x7b
push 0xa0
call fcn.1001cab0
add esp, 0x1c
movsx ecx, ax
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0
je 0x1001ca11
mov edx, 2
mov word [0x1004418c], dx
movzx eax, word [0x10044174]
not eax
mov ecx, dword [ebp - 0x2c]
not ecx
imul eax, ecx
test eax, eax
jne 0x1001c87e
mov dword [ebp - 0x1c8], 1
jmp 0x1001c888
mov dword [ebp - 0x1c8], 0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x3fc], edx
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x404], edx
sub ecx, eax
movzx eax, word [0x10044124]
imul eax, dword [0x10044170]
imul eax, dword [ebp - 0x1c8]
cdq
add ecx, eax
mov word [0x10044198], cx
mov cl, byte [0x1004404f]
sub cl, 1
mov byte [0x1004404f], cl
movzx edx, word [0x1004418c]
mov dword [ebp - 0xb0], edx
cmp dword [ebp - 0xb0], 0
je 0x1001c901
cmp dword [ebp - 0xb0], 1
je 0x1001c968
cmp dword [ebp - 0xb0], 2
je 0x1001c98c
jmp 0x1001ca0f
movzx eax, byte [0x100440fa]
test eax, eax
je 0x1001c920
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x1e8], ecx
mov dword [ebp - 0x1e4], edx
jmp 0x1001c931
movzx eax, byte [ebp - 6]
cdq
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], edx
mov eax, dword [ebp - 0x1e8]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
push 0
push 0x2be1
push edx
push ecx
call fcn.10026530
mov dword [0x10044108], eax
movsx eax, word [ebp - 0x14]
sub eax, 0xe1da
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jmp 0x1001ca0f
movzx eax, word [0x1004414c]
cdq
mov ecx, 8
imul ecx, ecx, 0x87
mov dword [ecx + 0x101f0538], eax
mov dword [ecx + 0x101f053c], edx
jmp 0x1001ca0f
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x314], edx
mov dword [ebp - 0x310], eax
mov ecx, dword [ebp - 0x314]
or ecx, dword [ebp - 0x310]
jne 0x1001c9b8
mov dword [ebp - 0x1cc], 1
jmp 0x1001c9c2
mov dword [ebp - 0x1cc], 0
movsx eax, byte [ebp - 1]
cdq
push edx
push eax
mov edx, dword [0x1004413c]
push edx
mov eax, dword [0x10044138]
push eax
call fcn.10026530
mov ecx, eax
mov esi, edx
mov eax, dword [0x10044188]
not eax
cdq
push edx
push eax
push esi
push ecx
call fcn.10026530
mov edx, dword [0x10044164]
imul edx, dword [ebp - 0x1cc]
mov ecx, dword [0x10044110]
not ecx
add ecx, dword [ebp - 0x4c]
sub edx, ecx
sub eax, edx
mov byte [ebp - 1], al
jmp 0x1001ca22
movzx eax, byte [ebp - 3]
cdq
xor eax, dword [ebp - 0x60]
xor edx, dword [ebp - 0x5c]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov dl, byte [0x1004409e]
add dl, 1
mov byte [0x1004409e], dl
jmp 0x1001c7ff
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret