Function at 0x10034790
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4d30
call fcn.1006c1c0
push ebx
push esi
push edi
movzx ax, byte [0x1009b0ef]
mov word [ebp - 0x538], ax
mov byte [ebp - 2], 0xd4
mov byte [ebp - 4], 0x1b
mov cl, byte [0x1009b0bb]
mov byte [ebp - 6], cl
mov edx, dword [0x1009b148]
mov byte [ebp - 1], dl
mov eax, dword [0x1009b130]
mov ecx, dword [0x1009b134]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov dx, word [0x1009b138]
mov word [ebp - 0x1c], dx
movzx eax, word [0x1009b184]
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x30], 5
movsx eax, byte [0x1009b0bb]
cdq
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov eax, dword [0x1009b1a8]
mov ecx, dword [0x1009b1ac]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ecx
mov dx, word [0x1009b178]
mov word [ebp - 0xc], dx
mov dword [ebp - 0x24], 0x793876c3
mov al, byte [0x1009b033]
mov byte [ebp - 5], al
movzx ecx, word [0x1009b158]
mov dword [ebp - 0x34], ecx
movzx edx, byte [0x1009b033]
mov dword [ebp - 0x48], edx
mov eax, dword [0x1009b188]
mov word [ebp - 0x18], ax
movsx eax, word [0x1009b180]
cdq
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
mov cl, byte [0x1009b184]
mov byte [ebp - 3], cl
movsx dx, byte [0x1009b0a7]
mov word [ebp - 0x14], dx
movsx eax, word [0x1009b180]
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movsx ax, byte [0x1009b0bb]
mov word [ebp - 0x10], ax
mov dword [ebp - 0x20], 0x39
xor ecx, ecx
mov dword [ebp - 0x68], 0x3f
mov dword [ebp - 0x64], ecx
mov edx, dword [0x1009b168]
mov eax, dword [0x1009b16c]
mov dword [ebp - 0x9ac], eax
mov word [ebp - 0x53c], dx
mov byte [ebp - 0x181], 0xe7
xor ecx, ecx
mov dword [ebp - 0xaa0], 0x2f6b
mov dword [ebp - 0xa9c], ecx
mov edx, 0x5d56
mov word [ebp - 0x540], dx
mov eax, dword [0x1009b18c]
mov dword [ebp - 0x9b0], eax
xor ecx, ecx
mov dword [ebp - 0xaa8], 0xa86a5b98
mov dword [ebp - 0xaa4], ecx
mov edx, 0xe3c1
mov word [ebp - 0x544], dx
mov eax, dword [0x1009b18c]
mov dword [ebp - 0x9b4], eax
mov ecx, 0xffff8556
mov word [ebp - 0x548], cx
mov edx, dword [0x1009b150]
mov eax, dword [0x1009b154]
mov dword [ebp - 0x9b8], eax
mov byte [ebp - 0x1b9], dl
mov ecx, 0x9c
mov word [ebp - 0x54c], cx
mov edx, dword [0x1009b150]
mov eax, dword [0x1009b154]
mov dword [ebp - 0x9bc], eax
mov byte [ebp - 0x121], dl
mov dword [ebp - 0x9c0], 0x22d5cdfc
mov ecx, 0xf2
mov word [ebp - 0x550], cx
mov dl, byte [0x1009b07e]
mov byte [ebp - 0x122], dl
movsx eax, word [0x1009b180]
cdq
mov dword [ebp - 0x5f8], eax
mov dword [ebp - 0x5f4], edx
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x5f8]
jne 0x100349a7
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp - 0x5f4]
je 0x10034be9
movsx edx, byte [ebp - 5]
mov eax, dword [0x1009b170]
sub eax, edx
not eax
test eax, eax
je 0x100349d0
movzx ecx, byte [0x1009b07e]
cmp dword [ebp - 0x30], ecx
jle 0x100349d0
mov dword [ebp - 0x34c], 1
jmp 0x100349da
mov dword [ebp - 0x34c], 0
movzx edx, byte [0x1009b01f]
not edx
movzx eax, byte [0x1009b0ef]
cmp edx, eax
je 0x10034a02
xor ecx, ecx
mov dword [ebp - 0x384], 1
mov dword [ebp - 0x380], ecx
jmp 0x10034a0d
xorps xmm0, xmm0
movlpd qword [ebp - 0x384], xmm0
mov edx, dword [ebp - 0x54]
cmp edx, dword [ebp - 0x380]
jg 0x10034a31
jl 0x10034a25
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x384]
ja 0x10034a31
mov dword [ebp - 0x350], 1
jmp 0x10034a3b
mov dword [ebp - 0x350], 0
mov ecx, dword [ebp - 0x34c]
cmp ecx, dword [ebp - 0x350]
je 0x10034b33
mov dword [ebp - 0x154], 0xe
movsx eax, byte [0x1009b0ba]
cdq
mov ecx, dword [ebp - 0x28]
push ecx
mov ecx, dword [ebp - 0x2c]
push ecx
push edx
push eax
call fcn.1006c090
mov byte [0x1009b0ba], al
movzx edx, byte [0x1009b0ef]
mov eax, dword [0x1009b18c]
sub eax, edx
mov ecx, dword [0x1009b18c]
sub ecx, eax
mov dword [0x1009b18c], ecx
mov edx, dword [0x1009b1b0]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x9c4], ecx
sub edx, eax
mov dword [0x1009b1b0], edx
mov edx, dword [0x1009b144]
xor eax, eax
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
push esi
push ecx
push eax
push edx
call fcn.1006c090
mov edx, dword [0x1009b144]
xor edx, eax
mov dword [0x1009b144], edx
movsx eax, word [ebp - 0x10]
imul ecx, eax, 0x4c7fc556
movsx edx, word [ebp - 0x10]
add edx, ecx
mov word [ebp - 0x10], dx
mov eax, dword [ebp - 0x24]
mov byte [0x1009b0ee], al
movzx eax, byte [0x1009b01f]
cdq
xor eax, 0x951cab10
mov byte [0x1009b0a6], al
mov ecx, 0xbd14
mov word [ebp - 0x18], cx
movzx edx, byte [ebp - 4]
shl edx, 7
mov byte [ebp - 3], dl
mov eax, dword [ebp - 0x154]
add eax, 1
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x154], 0x1702
jl 0x10034aa9
jmp 0x10034be9
movzx ecx, byte [0x1009b01f]
cmp ecx, dword [0x1009b170]
je 0x10034b4e
mov dword [ebp - 0x354], 1
jmp 0x10034b58
mov dword [ebp - 0x354], 0
cmp dword [ebp - 0x354], 0x95
je 0x10034be9
movzx edx, word [0x1009b184]
movsx eax, byte [ebp - 2]
imul edx, eax
movzx ecx, word [0x1009b184]
imul ecx, edx
mov word [0x1009b184], cx
movsx edx, word [0x1009b180]
test edx, edx
jne 0x10034b9e
mov dword [ebp - 0x358], 1
jmp 0x10034ba8
mov dword [ebp - 0x358], 0
movzx eax, byte [0x1009b01f]
mov ecx, dword [ebp - 0x358]
sub ecx, eax
mov byte [ebp - 4], cl
movzx edx, word [ebp - 0xc]
mov eax, dword [ebp - 0x24]
sub eax, edx
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x9c8], edx
sub ecx, 0xd8
mov byte [ebp - 2], cl
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
add ecx, eax
mov dword [ebp - 0x24], ecx
mov edx, dword [0x1009bc7c]
mov dword [ebp - 0x15c], edx
mov dword [ebp - 0x158], 0x2c
movzx eax, byte [0x1009b07e]
add eax, 0x645e4bdc
mov byte [ebp - 1], al
movsx ecx, byte [ebp - 2]
mov edx, dword [0x1009b144]
add edx, ecx
mov eax, dword [0x1009b144]
sub eax, edx
mov dword [0x1009b144], eax
movsx ecx, byte [ebp - 5]
test ecx, ecx
jne 0x10034c3a
mov dword [ebp - 0x378], 1
jmp 0x10034c44
mov dword [ebp - 0x378], 0
movsx eax, byte [0x1009b0ba]
sub eax, 0x74
movzx edx, word [ebp - 0x14]
sub eax, edx
cdq
mov ecx, eax
movzx eax, word [ebp - 0x18]
cdq
mov edx, dword [0x1009b1a8]
mov esi, dword [0x1009b1ac]
mov dword [ebp - 0x9cc], esi
sub eax, edx
mov edx, dword [0x1009b148]
imul edx, dword [ebp - 0x378]
add eax, edx
sub ecx, eax
mov byte [0x1009b0ef], cl
movzx eax, word [ebp - 0xc]
movzx ecx, byte [0x1009b0a6]
imul eax, ecx
movzx edx, word [ebp - 0xc]
sub edx, eax
mov word [ebp - 0xc], dx
movzx eax, word [ebp - 0x14]
imul eax, eax, 0x2c8a8637
cdq
mov dword [0x1009b138], eax
mov dword [0x1009b13c], edx
movzx ecx, byte [0x1009b07f]
mov edx, dword [ebp - 0x34]
xor edx, ecx
mov eax, dword [ebp - 0x34]
imul eax, edx
mov dword [ebp - 0x34], eax
mov cl, byte [0x1009b0bb]
sub cl, 1
mov byte [0x1009b0bb], cl
mov edx, dword [ebp - 0x158]
add edx, 1
mov dword [ebp - 0x158], edx
cmp dword [ebp - 0x158], 0x153c
jl 0x10034c87
mov eax, dword [ebp - 0x15c]
add eax, 0x146
mov dword [ebp - 0x9d0], eax
movzx ecx, byte [0x1009b033]
sar ecx, 5
mov word [ebp - 0x14], cx
cmp dword [ebp - 0x30], 0
je 0x10034d25
movsx edx, byte [ebp - 2]
mov dword [ebp - 0x37c], edx
jmp 0x10034d32
movzx eax, byte [0x1009b07e]
mov dword [ebp - 0x37c], eax
mov cx, word [ebp - 0x37c]
mov word [ebp - 0x1c], cx
mov edx, dword [ebp - 0x34]
mov dword [0x1009b170], edx
mov eax, dword [ebp - 0x15c]
add eax, 0x62
mov dword [ebp - 0x5c4], eax
movzx ecx, byte [ebp - 3]
movzx edx, word [ebp - 0x18]
add ecx, edx
mov byte [ebp - 5], cl
movzx eax, byte [0x1009b01f]
and eax, 0x81
mov byte [ebp - 5], al
mov ecx, dword [ebp - 0x15c]
add ecx, 0x2a2
mov dword [ebp - 0x5c8], ecx
mov edx, 3
mov word [ebp - 0x14], dx
mov eax, dword [0x1009bc7c]
mov dword [0x1009b140], eax
xor ecx, ecx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
sub edx, dword [0x1009b190]
sbb eax, ecx
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
push eax
push edx
push esi
push ecx
call fcn.1006c090
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov byte [0x1009b01f], 0x3a
movzx edx, word [ebp - 0x14]
mov dword [ebp - 0x1cc], edx
cmp dword [ebp - 0x1cc], 3
ja case.default.0x10034ddf
mov eax, dword [ebp - 0x1cc]
jmp dword [eax*4 + 0x1003ce68]
movzx eax, word [ebp - 0x18]
cdq
mov ecx, dword [0x1009b138]
sub ecx, eax
mov eax, dword [0x1009b13c]
sbb eax, edx
mov dword [0x1009b138], ecx
mov dword [0x1009b13c], eax
mov ecx, dword [ebp - 0x50]
or ecx, dword [ebp - 0x4c]
jne 0x10034e21
xor edx, edx
mov dword [ebp - 0x47c], 1
mov dword [ebp - 0x478], edx
jmp 0x10034e2c
xorps xmm0, xmm0
movlpd qword [ebp - 0x47c], xmm0
mov eax, dword [0x1009b160]
not eax
mov ecx, dword [0x1009b164]
not ecx
mov edx, dword [0x1009b170]
not edx
xor esi, esi
add eax, edx
adc ecx, esi
mov edx, dword [0x1009b178]
add edx, dword [ebp - 0x47c]
mov esi, dword [0x1009b17c]
adc esi, dword [ebp - 0x478]
push esi
push edx
push ecx
push eax
call fcn.1006c090
not eax
not edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
jmp case.default.0x10034ddf
mov eax, dword [ebp - 0x58]
sub eax, 0xf2ee652f
mov ecx, dword [ebp - 0x54]
sbb ecx, 0x5d29a
mov dword [0x1009b198], eax
mov dword [0x1009b19c], ecx
movzx eax, byte [ebp - 3]
cdq
mov edx, dword [0x1009b130]
mov ecx, dword [0x1009b134]
mov dword [ebp - 0x9d4], ecx
add edx, eax
mov dword [0x1009b144], edx
mov edx, 1
imul eax, edx, 0x88
movzx ecx, byte [eax + 0x101c0aa8]
movzx edx, byte [ebp - 3]
sub edx, ecx
mov byte [ebp - 3], dl
movzx eax, word [0x1009b158]
cdq
push 0x21b5f
push 0xbacf589f
push edx
push eax
call fcn.1006c090
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
jmp case.default.0x10034ddf
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov cl, 8
call fcn.1006c0f0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
mov eax, dword [0x1009b1a8]
mov ecx, dword [0x1009b1ac]
mov dword [ebp - 0x9d8], ecx
mov byte [ebp - 5], al
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
and edx, 0xed33ed8a
and eax, 0xeff7b
mov dword [0x1009b1a8], edx
mov dword [0x1009b1ac], eax
mov ecx, dword [ebp - 0x20]
sub ecx, 1
mov dword [ebp - 0x20], ecx
jmp case.default.0x10034ddf
mov edx, 2
imul eax, edx, 0x1f67
movzx ecx, word [eax + 0x1021a340]
mov dword [ebp - 0x30], ecx
mov eax, dword [0x1009b150]
mov edx, dword [0x1009b154]
mov cl, 1
call fcn.1006c1a0
mov byte [0x1009b0a6], al
mov byte [0x1009b0ee], 0x60
mov edx, dword [0x1009bc7c]
mov dword [ebp - 0x164], edx
mov byte [0x1009b0ee], 0x27
mov eax, dword [0x1009b168]
mov ecx, dword [0x1009b16c]
mov dword [ebp - 0x9dc], ecx
mov edx, dword [0x1009b1a8]
mov ecx, dword [0x1009b1ac]
mov dword [ebp - 0x9e0], ecx
add eax, edx
mov edx, dword [0x1009b18c]
not edx
movzx ecx, byte [0x1009b01f]
add edx, ecx
sub eax, edx
sub eax, dword [0x1009b1a0]
not eax
mov word [0x1009b158], ax
mov edx, dword [ebp - 0x24]
sub edx, 0xcc6ee0a9
mov byte [0x1009b0ba], dl
mov eax, dword [0x1009bc7c]
xor ecx, ecx
mov dword [0x1009b178], eax
mov dword [0x1009b17c], ecx
mov edx, dword [ebp - 0x164]
add edx, 0x19f
mov dword [ebp - 0x17c], edx
mov eax, dword [0x1009b14c]
mov ecx, dword [ebp - 0x20]
lea edx, [ecx + eax - 0x4a]
mov dword [ebp - 0x20], edx
movzx eax, byte [0x1009b07e]
movsx ecx, byte [ebp - 2]
sub eax, ecx
mov dword [ebp - 0x24], eax
mov dl, byte [0x1009bc7c]
mov byte [0x1009b0bb], dl
mov byte [0x1009b0ba], 0x65
mov eax, dword [ebp - 0x164]
add eax, 0x2b4
mov dword [ebp - 0x9e4], eax
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], 0
je 0x1003507e
mov ecx, dword [ebp - 0x160]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
mov dword [ebp - 0x9e8], eax
mov edx, dword [ebp - 0x160]
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov dword [ebp - 0x9ec], eax
mov eax, dword [0x1009b18c]
xor ecx, ecx
mov dword [ebp - 0x600], eax
mov dword [ebp - 0x5fc], ecx
mov edx, dword [ebp - 0x68]
cmp edx, dword [ebp - 0x600]
jne 0x100350ab
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x5fc]
je 0x1003531d
cmp dword [ebp - 0x30], 0
je 0x10035115
movzx ecx, byte [0x1009b0ee]
sub ecx, 0xbf8
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x34]
shl eax, 2
cdq
mov dword [0x1009b1a8], eax
mov dword [0x1009b1ac], edx
movsx edx, byte [ebp - 5]
sub edx, dword [ebp - 0x30]
movsx eax, byte [ebp - 5]
add eax, edx
mov byte [ebp - 5], al
movzx ecx, byte [0x1009b0ee]
test ecx, ecx
jne 0x100350fa
mov dword [ebp - 0x1d0], 1
jmp 0x10035104
mov dword [ebp - 0x1d0], 0
mov edx, dword [ebp - 0x1d0]
mov dword [0x1009b18c], edx
jmp 0x10035318
mov eax, dword [0x1009b150]
mov ecx, dword [0x1009b154]
mov dword [ebp - 0x608], eax
mov dword [ebp - 0x604], ecx
mov edx, dword [ebp - 0x608]
or edx, dword [ebp - 0x604]
je 0x10035197
movsx eax, byte [ebp - 2]
test eax, eax
jne 0x1003514e
mov dword [ebp - 0x1d4], 1
jmp 0x10035158
mov dword [ebp - 0x1d4], 0
movzx ecx, byte [0x1009b07f]
movsx edx, word [ebp - 0x10]
sub ecx, edx
imul ecx, dword [ebp - 0x1d4]
mov dword [0x1009b140], ecx
mov dword [ebp - 0x30], 0x6c
mov eax, dword [0x1009b198]
mov ecx, dword [0x1009b19c]
mov dword [ebp - 0x9f0], ecx
sub eax, 0xc92d
mov byte [ebp - 4], al
jmp 0x10035318
mov edx, dword [0x1009b148]
not edx
sub edx, dword [ebp - 0x24]
je 0x10035236
movsx eax, word [ebp - 0x10]
test eax, eax
jne 0x100351bc
mov dword [ebp - 0x1d8], 1
jmp 0x100351c6
mov dword [ebp - 0x1d8], 0
movzx ecx, word [ebp - 0xc]
not ecx
imul ecx, dword [ebp - 0x1d8]
movzx edx, word [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
sub eax, edx
xor ecx, eax
mov eax, 0xffffffa4
sub eax, ecx
cdq
mov dword [0x1009b168], eax
mov dword [0x1009b16c], edx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x2c]
adc edx, dword [ebp - 0x28]
or ecx, dword [ebp - 0x2c]
or edx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], edx
movsx eax, word [ebp - 0x10]
shl eax, 8
mov byte [0x1009b0bb], al
mov byte [0x1009b01f], 0x5e
imul ecx, dword [ebp - 0x30], 0x838e
mov edx, dword [0x1009b144]
add edx, ecx
mov dword [0x1009b144], edx
jmp 0x10035318
mov eax, dword [ebp - 0x68]
or eax, dword [ebp - 0x64]
je 0x10035318
mov ecx, 0x619
test ecx, ecx
je 0x10035318
mov edx, dword [0x1009b144]
imul edx, dword [0x1009b18c]
mov ecx, edx
xor esi, esi
mov edx, dword [ebp - 0x40]
sub ecx, dword [ebp - 0x44]
sbb esi, edx
not ecx
not esi
movzx eax, word [ebp - 0xc]
not eax
movsx edx, byte [0x1009b0a7]
sub eax, edx
not eax
cdq
sub ecx, eax
sbb esi, edx
not ecx
not esi
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], esi
mov eax, dword [0x1009b150]
mov ecx, dword [0x1009b154]
xor eax, 0xffff1918
xor ecx, 0xffffffff
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], ecx
mov edx, dword [ebp - 0x610]
or edx, dword [ebp - 0x60c]
jne 0x100352c5
mov dword [ebp - 0x1dc], 1
jmp 0x100352cf
mov dword [ebp - 0x1dc], 0
mov eax, dword [0x1009b1a0]
not eax
add eax, dword [ebp - 0x1dc]
mov dword [0x1009b188], eax
mov ecx, dword [0x1009b138]
add ecx, 0x12
mov dword [0x1009b1b0], ecx
mov edx, dword [0x1009b1b0]
and edx, dword [ebp - 0x20]
mov eax, dword [0x1009b130]
mov ecx, dword [0x1009b134]
mov dword [ebp - 0x9f4], ecx
add eax, dword [0x1009b160]
add edx, eax
mov dword [0x1009b1b0], edx
jmp 0x10035427
movzx edx, word [ebp - 0xc]
test edx, edx
jne 0x10035339
xor eax, eax
mov dword [ebp - 0x484], 1
mov dword [ebp - 0x480], eax
jmp 0x10035344
xorps xmm0, xmm0
movlpd qword [ebp - 0x484], xmm0
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x484]
mov esi, dword [ebp - 0x28]
sbb esi, dword [ebp - 0x480]
not ecx
not esi
mov eax, dword [0x1009b188]
not eax
movsx edx, byte [0x1009b0a7]
sub eax, edx
not eax
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], esi
movsx eax, byte [0x1009b0bb]
test eax, eax
jne 0x1003538e
mov dword [ebp - 0x1e0], 1
jmp 0x10035398
mov dword [ebp - 0x1e0], 0
movzx eax, byte [0x1009b01f]
cdq
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x9f8], edx
xor ecx, dword [ebp - 0x2c]
sub eax, ecx
movsx ecx, byte [ebp - 5]
sub ecx, dword [ebp - 0x1e0]
movzx edx, byte [0x1009b0ee]
add edx, dword [0x1009b18c]
not edx
add ecx, edx
sub eax, ecx
mov dword [ebp - 0x20], eax
movsx eax, byte [0x1009b0bb]
add eax, 0xbca0
movsx ecx, word [ebp - 0x10]
imul ecx, dword [0x1009b188]
not ecx
sub eax, ecx
cdq
mov dword [0x1009b178], eax
mov dword [0x1009b17c], edx
mov edx, dword [0x1009bc7c]
xor eax, eax
mov dword [0x1009b1a8], edx
mov dword [0x1009b1ac], eax
mov byte [ebp - 5], 4
mov ecx, 8
imul edx, ecx, 3
mov eax, dword [0x1009b144]
sub eax, dword [edx + 0x101c0bc0]
mov dword [0x1009b144], eax
mov ecx, dword [ebp - 0x164]
add ecx, 0xfc
mov dword [ebp - 0x9fc], ecx
cmp dword [ebp - 0x24], 0
je 0x100354ce
mov edx, dword [ebp - 0x58]
or edx, dword [ebp - 0x54]
jne 0x1003545f
xor eax, eax
mov dword [ebp - 0x48c], 1
mov dword [ebp - 0x488], eax
jmp 0x1003546a
xorps xmm0, xmm0
movlpd qword [ebp - 0x48c], xmm0
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
push edx
push ecx
mov eax, dword [ebp - 0x488]
push eax
mov ecx, dword [ebp - 0x48c]
push ecx
call fcn.1006c090
mov ecx, dword [0x1009b138]
not ecx
mov esi, dword [0x1009b13c]
not esi
push esi
push ecx
push edx
push eax
call fcn.1006c090
mov dword [ebp - 0x20], eax
imul edx, dword [ebp - 0x30], 0xd09b4057
xor eax, eax
mov dword [0x1009b168], edx
mov dword [0x1009b16c], eax
movzx ecx, word [ebp - 0xc]
movzx edx, byte [ebp - 3]
add ecx, edx
sub ecx, dword [0x1009b1b0]
mov word [ebp - 0x10], cx
jmp 0x10035568
cmp dword [ebp - 0x34], 0
jne 0x100354e0
mov dword [ebp - 0x1e4], 1
jmp 0x100354ea
mov dword [ebp - 0x1e4], 0
movzx eax, byte [0x1009b0ee]
imul eax, dword [ebp - 0x1e4]
test eax, eax
je 0x10035568
mov ecx, 8
imul edx, ecx, 0x6f1a
mov eax, dword [edx + 0x1009bd48]
mov dword [ebp - 0x30], eax
movsx eax, byte [ebp - 6]
cdq
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0xa00], edx
sub eax, ecx
mov byte [ebp - 6], al
movzx eax, byte [0x1009b0a6]
imul eax, eax, 0x6a52
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov dword [0x1009b18c], 4
movsx ecx, byte [ebp - 6]
sub ecx, dword [0x1009b188]
movsx edx, byte [ebp - 6]
sub edx, ecx
mov byte [ebp - 6], dl
mov eax, dword [0x1009b14c]
add eax, 0xe2
cdq
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
movzx eax, word [ebp - 0x18]
test eax, eax
jne 0x1003557c
mov dword [ebp - 0x1e8], 1
jmp 0x10035586
mov dword [ebp - 0x1e8], 0
movzx ecx, byte [0x1009b07e]
movsx edx, byte [0x1009b0ba]
add ecx, edx
movsx eax, byte [0x1009b0a7]
sub ecx, eax
movzx edx, word [0x1009b184]
mov eax, dword [0x1009b1b0]
not eax
sub edx, eax
add edx, dword [ebp - 0x1e8]
not edx
add ecx, edx
mov byte [ebp - 5], cl
movzx eax, word [ebp - 0x18]
cdq
add eax, dword [ebp - 0x58]
adc edx, dword [ebp - 0x54]
and eax, dword [ebp - 0x58]
and edx, dword [ebp - 0x54]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x618], ecx
mov dword [ebp - 0x614], edx
mov eax, dword [ebp - 0x618]
or eax, dword [ebp - 0x614]
je 0x1003560d
mov ecx, dword [0x1009b138]
mov edx, dword [0x1009b13c]
mov dword [ebp - 0x38c], ecx
mov dword [ebp - 0x388], edx
jmp 0x10035624
mov eax, dword [0x1009b150]
mov ecx, dword [0x1009b154]
mov dword [ebp - 0x38c], eax
mov dword [ebp - 0x388], ecx
mov edx, dword [ebp - 0x38c]
mov dword [0x1009b148], edx
movsx eax, byte [ebp - 6]
add eax, 0xc834
mov byte [ebp - 1], al
movzx eax, byte [0x1009b01f]
cdq
mov ecx, eax
mov edx, dword [0x1009b168]
mov eax, dword [0x1009b16c]
mov dword [ebp - 0xa04], eax
add ecx, edx
movzx eax, byte [0x1009b01f]
cdq
add eax, ecx
mov byte [0x1009b01f], al
movzx eax, byte [ebp - 4]
sub eax, 0x3f6d
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov ecx, dword [0x1009b150]
mov edx, dword [0x1009b154]
mov eax, dword [ebp - 0x24]
xor esi, esi
mov dword [ebp - 0x620], ecx
mov dword [ebp - 0x61c], edx
mov dword [ebp - 0x628], eax
mov dword [ebp - 0x624], esi
mov ecx, dword [ebp - 0x620]
cmp ecx, dword [ebp - 0x628]
jne 0x10035734
mov edx, dword [ebp - 0x61c]
cmp edx, dword [ebp - 0x624]
jne 0x10035734
movsx eax, byte [ebp - 5]
xor eax, 0x6d9a7518
cdq
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
sub eax, 0xd44c
sbb ecx, 0
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
mov eax, dword [0x1009b188]
cdq
mov ecx, eax
mov esi, edx
mov edx, dword [0x1009b154]
add ecx, dword [0x1009b150]
adc esi, edx
mov eax, dword [0x1009b188]
cdq
push esi
push ecx
push edx
push eax
call fcn.1006c090
mov dword [0x1009b188], eax
mov eax, dword [0x1009bc7c]
xor ecx, ecx
mov dword [0x1009b168], eax
mov dword [0x1009b16c], ecx
mov edx, dword [0x1009bc7c]
mov dword [0x1009b1b0], edx
jmp 0x1003582d
imul eax, dword [0x1009b18c], 0x6d504126
mov word [0x1009b158], ax
movsx ecx, byte [ebp - 2]
imul ecx, dword [0x1009b18c]
mov dword [0x1009b18c], ecx
movzx eax, byte [ebp - 4]
sub eax, 0x374d
cdq
mov dword [0x1009b168], eax
mov dword [0x1009b16c], edx
push 0
push 0x457c
mov edx, dword [0x1009b17c]
push edx
mov eax, dword [0x1009b178]
push eax
call fcn.1006c090
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x62c], edx
mov ecx, dword [ebp - 0x630]
or ecx, dword [ebp - 0x62c]
jne 0x100357b1
xor edx, edx
mov dword [ebp - 0x394], 1
mov dword [ebp - 0x390], edx
jmp 0x100357bc
xorps xmm0, xmm0
movlpd qword [ebp - 0x394], xmm0
movzx eax, byte [ebp - 3]
movsx ecx, word [ebp - 0x10]
add eax, ecx
cdq
mov esi, eax
mov edi, edx
movsx eax, byte [0x1009b0a7]
cdq
mov ecx, dword [ebp - 0x58]
sub ecx, eax
mov eax, dword [ebp - 0x54]
sbb eax, edx
or esi, ecx
or edi, eax
movsx eax, word [0x1009b180]
cdq
mov ecx, dword [0x1009b16c]
sub eax, dword [0x1009b168]
sbb edx, ecx
push edx
push eax
mov edx, dword [ebp - 0x390]
push edx
mov eax, dword [ebp - 0x394]
push eax
call fcn.1006c090
sub esi, eax
sbb edi, edx
mov dword [0x1009b130], esi
mov dword [0x1009b134], edi
movzx ecx, word [ebp - 0x14]
add ecx, dword [ebp - 0x20]
movzx edx, word [ebp - 0x14]
xor edx, ecx
mov word [ebp - 0x14], dx
movzx eax, byte [ebp - 3]
movzx ecx, word [ebp - 0x1c]
cmp eax, ecx
jg 0x10035845
mov dword [ebp - 0x1ec], 1
jmp 0x1003584f
mov dword [ebp - 0x1ec], 0
movzx edx, byte [ebp - 3]
cmp edx, 0x64
jg 0x10035864
mov dword [ebp - 0x1f0], 1
jmp 0x1003586e
mov dword [ebp - 0x1f0], 0
mov eax, dword [ebp - 0x1ec]
cmp eax, dword [ebp - 0x1f0]
jg 0x100358f4
mov dword [ebp - 0x24], 0xb0adbe3a
movsx eax, word [0x1009b180]
cdq
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
mov eax, dword [ebp - 0x28]
sbb eax, edx
add ecx, dword [ebp - 0x2c]
adc eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
mov ecx, dword [0x1009b18c]
sub ecx, 0xeedd
mov dword [0x1009b14c], ecx
mov edx, dword [0x1009b1a0]
add edx, 0xf452
mov dword [ebp - 0x20], edx
mov eax, dword [0x1009b1a8]
mov ecx, dword [0x1009b1ac]
add eax, dword [ebp - 0x50]
adc ecx, dword [ebp - 0x4c]
mov dword [0x1009b1a8], eax
mov dword [0x1009b1ac], ecx
mov ecx, dword [0x1009b160]
xor ecx, 0xcc831367
movzx eax, byte [ebp - 4]
cdq
sub eax, ecx
mov byte [ebp - 4], al
mov edx, 0xd5c919d1
or edx, 0xfff50cfb
je 0x1003593a
mov eax, dword [0x1009b198]
mov ecx, dword [0x1009b19c]
mov dword [ebp - 0x638], eax
mov dword [ebp - 0x634], ecx
mov edx, dword [ebp - 0x638]
or edx, dword [ebp - 0x634]
je 0x1003593a
xor eax, eax
mov dword [ebp - 0x39c], 1
mov dword [ebp - 0x398], eax
jmp 0x10035945
xorps xmm0, xmm0
movlpd qword [ebp - 0x39c], xmm0
mov ecx, dword [0x1009b160]
not ecx
mov edx, dword [0x1009b164]
not edx
mov dword [ebp - 0x640], ecx
mov dword [ebp - 0x63c], edx
mov eax, dword [ebp - 0x39c]
cmp eax, dword [ebp - 0x640]
jne 0x10035989
mov ecx, dword [ebp - 0x398]
cmp ecx, dword [ebp - 0x63c]
jne 0x10035989
mov dword [ebp - 0x1f4], 1
jmp 0x10035993
mov dword [ebp - 0x1f4], 0
movzx edx, word [0x1009b184]
imul edx, dword [ebp - 0x1f4]
test edx, edx
je 0x100359b7
push 0x1007e57c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov byte [0x1009b0a7], al
jmp 0x10035a0c
mov eax, dword [ebp - 0x58]
add eax, 0x321e
mov byte [ebp - 2], al
mov dword [0x1009b144], 0xfb49bfd5
mov ecx, dword [ebp - 0x2c]
xor ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x28]
xor edx, dword [ebp - 0x54]
add ecx, dword [ebp - 0x2c]
adc edx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x2c]
add eax, 1
mov ecx, dword [ebp - 0x28]
adc ecx, 0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ecx
movzx edx, byte [ebp - 3]
movsx eax, byte [0x1009b0ba]
sub edx, eax
movzx ecx, byte [ebp - 3]
or ecx, edx
mov byte [ebp - 3], cl
movsx edx, byte [ebp - 6]
cmp dword [ebp - 0x24], edx
ja 0x10035a21
mov dword [ebp - 0x1f8], 1
jmp 0x10035a2b
mov dword [ebp - 0x1f8], 0
cmp dword [ebp - 0x24], 0x4e
ja 0x10035a3d
mov dword [ebp - 0x1fc], 1
jmp 0x10035a47
mov dword [ebp - 0x1fc], 0
mov eax, dword [ebp - 0x1f8]
cmp eax, dword [ebp - 0x1fc]
jge 0x10035ba3
movzx ecx, byte [ebp - 3]
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
movzx edx, byte [ebp - 4]
test edx, edx
jl 0x10035a78
mov dword [ebp - 0x200], 1
jmp 0x10035a82
mov dword [ebp - 0x200], 0
movzx eax, byte [ebp - 4]
cmp eax, 0x45
jl 0x10035a97
mov dword [ebp - 0x204], 1
jmp 0x10035aa1
mov dword [ebp - 0x204], 0
mov ecx, dword [ebp - 0x200]
cmp ecx, dword [ebp - 0x204]
jg 0x10035ba1
cmp dword [0x1009b18c], 0
je 0x10035ba1
movzx eax, byte [0x1009b07e]
add eax, 0x428166e4
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], esi
movsx edx, byte [ebp - 1]
movzx eax, byte [0x1009b07f]
add edx, eax
mov byte [ebp - 1], dl
mov eax, dword [ebp - 0x20]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
xor ecx, eax
xor esi, edx
movzx eax, byte [0x1009b0ef]
cdq
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov dword [ebp - 0x20], eax
movsx edx, word [ebp - 0x10]
test edx, edx
jne 0x10035b23
mov dword [ebp - 0x208], 1
jmp 0x10035b2d
mov dword [ebp - 0x208], 0
mov eax, dword [ebp - 0x34]
not eax
imul eax, dword [ebp - 0x208]
test eax, eax
jne 0x10035b51
xor ecx, ecx
mov dword [ebp - 0x648], 1
mov dword [ebp - 0x644], ecx
jmp 0x10035b5c
xorps xmm0, xmm0
movlpd qword [ebp - 0x648], xmm0
mov eax, dword [ebp - 0x34]
cdq
push edx
push eax
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.1006c090
add eax, dword [ebp - 0x648]
mov byte [0x1009b0a7], al
movzx ecx, byte [0x1009b0a6]
mov edx, dword [0x1009b190]
sub edx, ecx
mov dword [0x1009b1a0], edx
mov eax, dword [0x1009bc7c]
xor ecx, ecx
mov dword [0x1009b168], eax
mov dword [0x1009b16c], ecx
jmp 0x10035be1
movsx edx, word [ebp - 0x10]
test edx, edx
je 0x10035be1
movsx eax, byte [ebp - 1]
cdq
mov ecx, eax
xor ecx, 0xb47e8b00
movzx eax, word [ebp - 0xc]
cdq
add eax, ecx
mov word [ebp - 0xc], ax
movzx edx, word [ebp - 0x18]
imul eax, edx, 0xdc
mov dword [ebp - 0x20], eax
movsx ecx, byte [ebp - 5]
mov edx, dword [ebp - 0x34]
xor edx, ecx
mov eax, dword [ebp - 0x34]
sub eax, edx
mov dword [ebp - 0x34], eax
xor ecx, ecx
mov byte [ebp - 0x77], cl
lea edx, [ebp - 0xb82]
push edx
lea ecx, [ebp - 0x77]
call fcn.10002af0
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], 0
jmp 0x10035c16
mov eax, dword [ebp - 0xe4]
add eax, 1
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0xe
jae 0x10035c78
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xe8]
lea eax, [edx + ecx*2 + 2]
mov dword [ebp - 0x554], eax
mov ecx, dword [ebp - 0x554]
movzx edx, word [ecx]
mov eax, dword [ebp - 0xe8]
movsx ecx, byte [eax]
xor edx, ecx
mov word [ebp - 0x12a], dx
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xe8]
lea ecx, [eax + edx*2 + 2]
mov dword [ebp - 0x558], ecx
mov edx, dword [ebp - 0x558]
mov ax, word [ebp - 0x12a]
mov word [edx], ax
jmp 0x10035c07
mov ecx, 0xe
shl ecx, 1
mov edx, dword [ebp - 0xe8]
lea eax, [edx + ecx + 2]
mov dword [ebp - 0x55c], eax
xor ecx, ecx
mov edx, dword [ebp - 0x55c]
mov word [edx], cx
mov eax, dword [ebp - 0xe8]
add eax, 2
mov dword [ebp - 0x560], eax
push 0x410
lea ecx, [ebp - 0x10f4]
push ecx
mov edx, dword [ebp - 0x560]
push edx
push 0
push 0
call fcn.10001320
call eax
xor eax, eax
mov byte [ebp - 0x76], al
lea ecx, [ebp - 0xc68]
push ecx
lea ecx, [ebp - 0x76]
call fcn.10003090
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], 0
jmp 0x10035cfc
mov edx, dword [ebp - 0xec]
add edx, 1
mov dword [ebp - 0xec], edx
cmp dword [ebp - 0xec], 0x17
jae 0x10035d5e
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xf0]
lea edx, [ecx + eax*2 + 2]
mov dword [ebp - 0x564], edx
mov eax, dword [ebp - 0x564]
movzx ecx, word [eax]
mov edx, dword [ebp - 0xf0]
movsx eax, byte [edx]
xor ecx, eax
mov word [ebp - 0x12c], cx
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0xf0]
lea eax, [edx + ecx*2 + 2]
mov dword [ebp - 0x568], eax
mov ecx, dword [ebp - 0x568]
mov dx, word [ebp - 0x12c]
mov word [ecx], dx
jmp 0x10035ced
mov eax, 0x17
shl eax, 1
mov ecx, dword [ebp - 0xf0]
lea edx, [ecx + eax + 2]
mov dword [ebp - 0x56c], edx
xor eax, eax
mov ecx, dword [ebp - 0x56c]
mov word [ecx], ax
mov edx, dword [ebp - 0xf0]
add edx, 2
mov dword [ebp - 0x570], edx
push 0x410
lea eax, [ebp - 0x1504]
push eax
mov ecx, dword [ebp - 0x570]
push ecx
push 0
push 0
call fcn.10001320
call eax
xor edx, edx
mov byte [ebp - 0x75], dl
lea eax, [ebp - 0xc36]
push eax
lea ecx, [ebp - 0x75]
call fcn.10003790
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], 0
jmp 0x10035de2
mov ecx, dword [ebp - 0xf4]
add ecx, 1
mov dword [ebp - 0xf4], ecx
cmp dword [ebp - 0xf4], 0x16
jae 0x10035e44
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xf8]
lea ecx, [eax + edx*2 + 2]
mov dword [ebp - 0x574], ecx
mov edx, dword [ebp - 0x574]
movzx eax, word [edx]
mov ecx, dword [ebp - 0xf8]
movsx edx, byte [ecx]
xor eax, edx
mov word [ebp - 0x12e], ax
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf8]
lea edx, [ecx + eax*2 + 2]
mov dword [ebp - 0x578], edx
mov eax, dword [ebp - 0x578]
mov cx, word [ebp - 0x12e]
mov word [eax], cx
jmp 0x10035dd3
mov edx, 0x16
shl edx, 1
mov eax, dword [ebp - 0xf8]
lea ecx, [eax + edx + 2]
mov dword [ebp - 0x57c], ecx
xor edx, edx
mov eax, dword [ebp - 0x57c]
mov word [eax], dx
mov ecx, dword [ebp - 0xf8]
add ecx, 2
mov dword [ebp - 0x580], ecx
push 0x410
lea edx, [ebp - 0x1914]
push edx
mov eax, dword [ebp - 0x580]
push eax
push 0
push 0
call fcn.10001320
call eax
xor ecx, ecx
mov byte [ebp - 0x73], cl
lea edx, [ebp - 0xbae]
push edx
lea ecx, [ebp - 0x73]
call fcn.10003b10
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], 0
jmp 0x10035ec8
mov eax, dword [ebp - 0xfc]
add eax, 1
mov dword [ebp - 0xfc], eax
cmp dword [ebp - 0xfc], 0x14
jae 0x10035f2a
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ebp - 0x100]
lea eax, [edx + ecx*2 + 2]
mov dword [ebp - 0x584], eax
mov ecx, dword [ebp - 0x584]
movzx edx, word [ecx]
mov eax, dword [ebp - 0x100]
movsx ecx, byte [eax]
xor edx, ecx
mov word [ebp - 0x130], dx
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x100]
lea ecx, [eax + edx*2 + 2]
mov dword [ebp - 0x588], ecx
mov edx, dword [ebp - 0x588]
mov ax, word [ebp - 0x130]
mov word [edx], ax
jmp 0x10035eb9
mov ecx, 0x14
shl ecx, 1
mov edx, dword [ebp - 0x100]
lea eax, [edx + ecx + 2]
mov dword [ebp - 0x58c], eax
xor ecx, ecx
mov edx, dword [ebp - 0x58c]
mov word [edx], cx
mov eax, dword [ebp - 0x100]
add eax, 2
mov dword [ebp - 0x590], eax
push 0x410
lea ecx, [ebp - 0x1d24]
push ecx
mov edx, dword [ebp - 0x590]
push edx
push 0
push 0
call fcn.10001320
call eax
xor eax, eax
mov byte [ebp - 0x72], al
lea ecx, [ebp - 0xb28]
push ecx
lea ecx, [ebp - 0x72]
call fcn.10003eb0
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], 0
jmp 0x10035fae
mov edx, dword [ebp - 0x104]
add edx, 1
mov dword [ebp - 0x104], edx
cmp dword [ebp - 0x104], 0xa
jae 0x10036010
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x108]
lea edx, [ecx + eax*2 + 2]
mov dword [ebp - 0x594], edx
mov eax, dword [ebp - 0x594]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x108]
movsx eax, byte [edx]
xor ecx, eax
mov word [ebp - 0x132], cx
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0x108]
lea eax, [edx + ecx*2 + 2]
mov dword [ebp - 0x598], eax
mov ecx, dword [ebp - 0x598]
mov dx, word [ebp - 0x132]
mov word [ecx], dx
jmp 0x10035f9f
mov eax, 0xa
shl eax, 1
mov ecx, dword [ebp - 0x108]
lea edx, [ecx + eax + 2]
mov dword [ebp - 0x59c], edx
xor eax, eax
mov ecx, dword [ebp - 0x59c]
mov word [ecx], ax
mov edx, dword [ebp - 0x108]
add edx, 2
mov dword [ebp - 0x5a0], edx
mov eax, dword [ebp - 0x5a0]
push eax
lea ecx, [ebp - 0x10f4]
push ecx
push 0
push 0
call fcn.100012f0
call eax
lea edx, [ebp - 0x1504]
push edx
lea eax, [ebp - 0x10f4]
push eax
push 0
push 0
call fcn.100012f0
call eax
xor ecx, ecx
mov byte [ebp - 0x71], cl
lea edx, [ebp - 0xae8]
push edx
lea ecx, [ebp - 0x71]
call fcn.10003f60
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x7c], 0
jmp 0x1003609f
mov eax, dword [ebp - 0x7c]
add eax, 1
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 6
jae 0x100360f8
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0xe0]
lea eax, [edx + ecx*2 + 2]
mov dword [ebp - 0x5a4], eax
mov ecx, dword [ebp - 0x5a4]
movzx edx, word [ecx]
mov eax, dword [ebp - 0xe0]
movsx ecx, byte [eax]
xor edx, ecx
mov word [ebp - 0x134], dx
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0xe0]
lea ecx, [eax + edx*2 + 2]
mov dword [ebp - 0x5a8], ecx
mov edx, dword [ebp - 0x5a8]
mov ax, word [ebp - 0x134]
mov word [edx], ax
jmp 0x10036096
mov ecx, 6
shl ecx, 1
mov edx, dword [ebp - 0xe0]
lea eax, [edx + ecx + 2]
mov dword [ebp - 0x5ac], eax
xor ecx, ecx
mov edx, dword [ebp - 0x5ac]
mov word [edx], cx
mov eax, dword [ebp - 0xe0]
add eax, 2
mov dword [ebp - 0x5b0], eax
mov ecx, dword [ebp - 0x5b0]
push ecx
lea edx, [ebp - 0x2d28]
push edx
push 0
push 0
call fcn.10001410
call eax
lea eax, [ebp - 0x1914]
push eax
lea ecx, [ebp - 0x2d28]
push ecx
push 0
push 0
call fcn.100012f0
call eax
xor edx, edx
mov byte [ebp - 0x70], dl
lea eax, [ebp - 0xb44]
push eax
lea ecx, [ebp - 0x70]
call fcn.100041b0
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], 0
jmp 0x10036187
mov ecx, dword [ebp - 0x80]
add ecx, 1
mov dword [ebp - 0x80], ecx
cmp dword [ebp - 0x80], 0xc
jae 0x100361e0
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x84]
lea ecx, [eax + edx*2 + 2]
mov dword [ebp - 0x5b4], ecx
mov edx, dword [ebp - 0x5b4]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x84]
movsx edx, byte [ecx]
xor eax, edx
mov word [ebp - 0x136], ax
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x84]
lea edx, [ecx + eax*2 + 2]
mov dword [ebp - 0x5b8], edx
mov eax, dword [ebp - 0x5b8]
mov cx, word [ebp - 0x136]
mov word [eax], cx
jmp 0x1003617e
mov edx, 0xc
shl edx, 1
mov eax, dword [ebp - 0x84]
lea ecx, [eax + edx + 2]
mov dword [ebp - 0x5bc], ecx
xor edx, edx
mov eax, dword [ebp - 0x5bc]
mov word [eax], dx
mov ecx, dword [ebp - 0x84]
add ecx, 2
mov dword [ebp - 0x5c0], ecx
mov edx, dword [ebp - 0x5c0]
push edx
lea eax, [ebp - 0x2d28]
push eax
push 0
push 0
call fcn.100012f0
call eax
lea ecx, [ebp - 0x1d24]
push ecx
lea edx, [ebp - 0x2d28]
push edx
push 0
push 0
call fcn.100012f0
call eax
movzx eax, byte [0x1009b033]
cmp dword [ebp - 0x20], eax
je 0x10036381
movzx ecx, byte [ebp - 3]
push ecx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x1003632a
movzx edx, byte [0x1009b01f]
test edx, edx
je 0x100362bb
mov eax, dword [ebp - 0x58]
add eax, 0xbc67543f
mov word [ebp - 0x18], ax
mov ecx, dword [0x1009b148]
add ecx, 0xfc5c
xor edx, edx
mov dword [0x1009b160], ecx
mov dword [0x1009b164], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0xa08], ecx
mov edx, 1
imul ecx, edx, 0x97
mov byte [ecx + 0x101c09f0], al
jmp 0x10036328
movzx eax, word [ebp - 0xc]
cdq
mov ecx, eax
sub ecx, dword [ebp - 0x58]
movzx eax, word [ebp - 0xc]
cdq
sub eax, ecx
mov word [ebp - 0xc], ax
mov edx, dword [0x1009b1b0]
add edx, 1
mov dword [0x1009b1b0], edx
movsx eax, word [0x1009b180]
cdq
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
push esi
push ecx
push eax
push edx
call fcn.1006c090
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov byte [ebp - 1], 0x1c
movzx ecx, byte [ebp - 3]
sub ecx, 0x4d1
mov byte [ebp - 1], cl
mov edx, dword [0x1009b130]
mov eax, dword [0x1009b134]
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
jmp 0x1003637c
cmp dword [0x1009b188], 0
je 0x1003637c
mov ecx, dword [0x1009b130]
mov edx, dword [0x1009b134]
mov dword [ebp - 0xa0c], edx
add ecx, 0x88afc227
mov byte [0x1009b0ee], cl
mov al, byte [0x1009b170]
mov byte [0x1009b0ef], al
mov dword [0x1009b14c], 0x3c
mov ecx, 0x3864
mov word [ebp - 0x18], cx
movsx edx, word [ebp - 0x10]
movsx eax, word [ebp - 0x10]
sub edx, eax
mov word [ebp - 0x10], dx
jmp 0x100364a1
cmp dword [0x1009b18c], 0
je 0x10036401
movsx ecx, byte [0x1009b0a7]
movzx edx, byte [ebp - 3]
add ecx, edx
mov byte [0x1009b0a7], cl
movzx eax, byte [ebp - 3]
cdq
mov ecx, eax
add ecx, dword [0x1009b178]
movzx eax, word [ebp - 0xc]
not eax
cdq
sub ecx, eax
mov byte [0x1009b07e], cl
movzx eax, byte [0x1009b033]
cdq
sub eax, dword [0x1009b160]
mov dl, byte [0x1009b033]
mov ecx, eax
shr dl, cl
mov byte [0x1009b033], dl
mov eax, dword [ebp - 0x34]
sub eax, 0x51b16261
xor ecx, ecx
mov dword [0x1009b130], eax
mov dword [0x1009b134], ecx
movsx eax, byte [0x1009b0a7]
cdq
add eax, dword [ebp - 0x68]
mov byte [0x1009b0a7], al
jmp 0x100364a1
mov edx, dword [ebp - 0x68]
or edx, dword [ebp - 0x64]
je 0x1003643d
movsx eax, word [ebp - 0x10]
movzx ecx, word [0x1009b158]
sub eax, ecx
movsx edx, word [ebp - 0x10]
sub edx, eax
mov word [ebp - 0x10], dx
movzx eax, byte [0x1009b07e]
mov ecx, dword [0x1009b144]
add ecx, eax
mov dword [0x1009b144], ecx
mov dl, byte [ebp - 5]
mov byte [ebp - 2], dl
jmp 0x100364a1
mov eax, dword [0x1009b178]
not eax
mov ecx, dword [0x1009b17c]
not ecx
mov dword [ebp - 0x650], eax
mov dword [ebp - 0x64c], ecx
mov edx, dword [ebp - 0x650]
or edx, dword [ebp - 0x64c]
je 0x100364a1
movsx eax, byte [ebp - 5]
xor eax, 0xc2
mov word [ebp - 0x1c], ax
movsx ecx, word [ebp - 0x10]
add ecx, dword [0x1009b148]
mov word [ebp - 0x10], cx
movsx edx, byte [ebp - 2]
imul edx, dword [ebp - 0x34]
mov byte [ebp - 2], dl
movzx eax, byte [0x1009b01f]
sub eax, 0xf6d3
movsx ecx, byte [ebp - 2]
sub ecx, eax
mov byte [ebp - 2], cl
mov edx, dword [ebp - 0x5c4]
cmp dword [ebp - 0x5c8], edx
je 0x1003c825
movzx eax, byte [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
mov word [0x1009b158], ax
push 0
lea ecx, [ebp - 0x10f4]
push ecx
push 0
push 0
call fcn.10001530
call eax
test eax, eax
je 0x1003c082
movsx edx, byte [0x1009b0a7]
test edx, edx
je 0x1003650b
movzx eax, word [0x1009b184]
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
xor ecx, ecx
mov dword [0x1009b130], eax
mov dword [0x1009b134], ecx
jmp 0x1003659b
movzx edx, byte [0x1009b0ef]
imul eax, edx, 0xaefd
mov byte [0x1009b07f], al
movzx ecx, byte [0x1009b07e]
movsx edx, byte [0x1009b0bb]
sub ecx, edx
sub ecx, dword [ebp - 0x20]
mov byte [ebp - 2], cl
mov eax, dword [ebp - 0x58]
sub eax, 1
mov ecx, dword [ebp - 0x54]
sbb ecx, 0
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
movzx eax, byte [0x1009b0ee]
cdq
add eax, 0x9bc282f2
adc edx, 0x39b0
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
imul edx, dword [0x1009b188], 0x7b872e58
mov byte [0x1009b0a6], dl
movzx eax, byte [0x1009b07e]
mov ecx, dword [0x1009b190]
imul ecx, eax
mov edx, dword [0x1009b190]
add edx, ecx
mov dword [0x1009b190], edx
mov dword [0x1009b144], 0x2fb9
movzx eax, word [ebp - 0x14]
cdq
mov esi, eax
mov edi, edx
mov eax, dword [0x1009b1ac]
sub esi, dword [0x1009b1a8]
sbb edi, eax
xor ecx, ecx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
xor edx, dword [0x1009b148]
xor eax, ecx
mov ecx, dword [0x1009b13c]
push ecx
mov ecx, dword [0x1009b138]
push ecx
push eax
push edx
call fcn.1006c090
push edx
push eax
push edi
push esi
call fcn.1006c090
mov dword [ebp - 0x658], eax
mov dword [ebp - 0x654], edx
mov edx, dword [ebp - 0x658]
or edx, dword [ebp - 0x654]
jne 0x1003660f
mov dword [ebp - 0x20c], 1
jmp 0x10036619
mov dword [ebp - 0x20c], 0
mov eax, dword [ebp - 0x20c]
mov dword [ebp - 0x30], eax
mov ecx, dword [0x1009b144]
xor edx, edx
mov eax, dword [0x1009b17c]
push eax
mov eax, dword [0x1009b178]
push eax
push edx
push ecx
call fcn.1006c090
mov dword [0x1009b144], eax
movzx ecx, byte [ebp - 3]
sub ecx, 0x9b8f
mov dword [ebp - 0x20], ecx
movsx edx, byte [ebp - 2]
add edx, 0x2fb9
cmp dword [0x1009b144], edx
jne 0x1003674f
movzx eax, byte [ebp - 4]
add eax, 0x79
cmp dword [0x1009b18c], eax
jne 0x1003674f
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x168], 0
je 0x100366b3
mov ecx, dword [ebp - 0x168]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
mov dword [ebp - 0xa10], eax
mov edx, dword [ebp - 0x168]
push edx
call dword [sym.imp.USER32.dll_ArrangeIconicWindows]
mov dword [ebp - 0xa14], eax
jmp 0x1003674f
mov dword [0x1009b144], 0x2fb9
movzx eax, byte [0x1009b01f]
sub eax, 0x658
mov word [ebp - 0x18], ax
movzx ecx, byte [0x1009b01f]
mov edx, dword [0x1009b144]
imul edx, ecx
mov word [ebp - 0xc], dx
mov al, byte [ebp - 1]
sub al, 1
mov byte [ebp - 1], al
mov cl, byte [0x1009b0ba]
sub cl, 1
mov byte [0x1009b0ba], cl
movsx edx, byte [0x1009b0ba]
imul eax, edx, 0xe7
mov dword [0x1009b18c], eax
mov ecx, dword [0x1009b160]
or ecx, dword [0x1009b164]
je 0x100367b6
jmp 0x10036812
mov edx, dword [0x1009b138]
or edx, dword [0x1009b13c]
je 0x100367d1
mov eax, dword [0x1009b140]
mov dword [ebp - 0x214], eax
jmp 0x100367da
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x214], ecx
mov dx, word [ebp - 0x214]
mov word [ebp - 0x10], dx
mov eax, dword [0x1009b18c]
xor eax, 0xfae6
mov dword [0x1009b140], eax
mov ecx, 2
imul edx, ecx, 0x21
mov ax, word [0x1009b1a0]
mov word [edx + 0x10223758], ax
mov ecx, 1
mov word [ebp - 0x1c], cx
mov edx, dword [0x1009bc7c]
mov dword [ebp - 0x16c], edx
call dword [sym.imp.USER32.dll_GetMessageTime]
xor ecx, ecx
mov dword [0x1009b138], eax
mov dword [0x1009b13c], ecx
mov edx, dword [0x1009b138]
or edx, dword [0x1009b13c]
je 0x10036896
mov eax, dword [0x1009b198]
mov ecx, dword [0x1009b19c]
mov dword [ebp - 0xa18], ecx
sub eax, 0x7f02
mov dword [ebp - 0x34], eax
mov edx, dword [0x1009bc7c]
mov dword [0x1009b144], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov dword [0x1009b168], eax
mov dword [0x1009b16c], ecx
mov edx, dword [0x1009b150]
mov eax, dword [0x1009b154]
xor edx, 0x8011f0ba
xor eax, 0x82ff2
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], eax
jmp 0x100369f1
mov ecx, dword [0x1009b130]
mov edx, dword [0x1009b134]
mov eax, dword [0x1009b168]
mov esi, dword [0x1009b16c]
mov dword [ebp - 0x660], ecx
mov dword [ebp - 0x65c], edx
mov dword [ebp - 0x668], eax
mov dword [ebp - 0x664], esi
mov ecx, dword [ebp - 0x660]
cmp ecx, dword [ebp - 0x668]
jne 0x100368e1
mov edx, dword [ebp - 0x65c]
cmp edx, dword [ebp - 0x664]
je 0x100368ed
mov dword [ebp - 0x21c], 1
jmp 0x100368f7
mov dword [ebp - 0x21c], 0
movsx eax, word [0x1009b180]
test eax, eax
jne 0x1003690e
mov dword [ebp - 0x218], 1
jmp 0x10036918
mov dword [ebp - 0x218], 0
movsx ecx, byte [0x1009b0a7]
cmp dword [ebp - 0x218], ecx
jl 0x10036933
mov dword [ebp - 0x220], 1
jmp 0x1003693d
mov dword [ebp - 0x220], 0
mov edx, dword [ebp - 0x21c]
cmp edx, dword [ebp - 0x220]
je 0x100369f1
mov eax, dword [0x1009bc7c]
xor ecx, ecx
mov dword [0x1009b168], eax
mov dword [0x1009b16c], ecx
movsx edx, byte [ebp - 6]
test edx, edx
jne 0x10036975
mov dword [ebp - 0x224], 1
jmp 0x1003697f
mov dword [ebp - 0x224], 0
movzx eax, byte [0x1009b0a6]
not eax
mov ecx, dword [0x1009b144]
add ecx, eax
movzx edx, byte [0x1009b0ee]
add ecx, edx
mov eax, dword [0x1009b18c]
add eax, dword [ebp - 0x224]
movzx edx, byte [0x1009b033]
add eax, edx
sub ecx, eax
mov dword [ebp - 0x30], ecx
mov eax, dword [0x1009b144]
and eax, dword [0x1009b160]
mov ecx, dword [0x1009b144]
add ecx, eax
mov dword [0x1009b144], ecx
mov edx, dword [0x1009bc7c]
mov dword [ebp - 0x48], edx
movsx eax, word [0x1009b180]
cdq
mov ecx, eax
sub ecx, dword [ebp - 0x2c]
movsx eax, word [0x1009b180]
cdq
and eax, ecx
mov word [0x1009b180], ax
mov edx, dword [ebp - 0x16c]
add edx, 0x1e7
mov dword [ebp - 0x5d0], edx
movsx eax, word [ebp - 0x10]
mov ecx, dword [0x1009b148]
add ecx, eax
mov edx, dword [0x1009b148]
add edx, ecx
mov dword [0x1009b148], edx
movsx eax, byte [ebp - 6]
add eax, 0xebc3
mov word [ebp - 0x14], ax
mov ecx, 0xe409
mov word [ebp - 0xc], cx
mov dl, byte [0x1009bc7c]
mov byte [0x1009b0ee], dl
mov eax, dword [ebp - 0x30]
cdq
add eax, 0xabdb4e4e
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x16c]
add eax, 0x3b7
mov dword [ebp - 0x238], eax
mov ecx, 0xbd1b
sub ecx, dword [ebp - 0x20]
mov edx, 0x8e7b
sub edx, ecx
mov dword [0x1009b1b0], edx
imul eax, dword [ebp - 0x48], 0x7380
mov dword [0x1009b18c], eax
movzx ecx, byte [ebp - 3]
test ecx, ecx
jne 0x10036a91
mov dword [ebp - 0x228], 1
jmp 0x10036a9b
mov dword [ebp - 0x228], 0
movzx edx, byte [ebp - 4]
add edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x228]
mov byte [ebp - 5], dl
mov eax, dword [ebp - 0x30]
add eax, 0xf8d926a
mov word [0x1009b180], ax
movzx ecx, byte [0x1009b0ee]
imul edx, ecx, 0xf5
mov eax, dword [0x1009b148]
imul eax, edx
xor ecx, ecx
mov dword [0x1009b160], eax
mov dword [0x1009b164], ecx
mov dl, byte [0x1009bc7c]
mov byte [ebp - 5], dl
mov eax, dword [ebp - 0x16c]
add eax, 0x1e0
mov dword [ebp - 0x5cc], eax
mov byte [0x1009b0a6], 0xf6
movsx ecx, byte [ebp - 1]
cmp ecx, dword [0x1009b18c]
ja 0x10036b48
mov edx, dword [ebp - 0x20]
add edx, 0x506ed6ec
xor eax, eax
mov dword [0x1009b178], edx
mov dword [0x1009b17c], eax
mov ecx, dword [0x1009b170]
add ecx, 0xc674
mov word [0x1009b184], cx
mov eax, dword [0x1009b140]
cdq
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0xa1c], ecx
add edx, eax
mov byte [ebp - 1], dl
movsx edx, byte [ebp - 1]
add edx, 0x4878
cmp dword [0x1009b140], edx
jne 0x10036d0c
movsx eax, byte [0x1009b0bb]
cdq
add eax, dword [ebp - 0x50]
adc edx, dword [ebp - 0x4c]
mov dword [ebp - 0x670], eax
mov dword [ebp - 0x66c], edx
cmp dword [ebp - 0x670], 1
jne 0x10036d0c
cmp dword [ebp - 0x66c], 0
jne 0x10036d0c
movsx eax, byte [0x1009b0a7]
movzx ecx, word [ebp - 0x1c]
cmp eax, ecx
jl 0x10036cb1
movsx eax, byte [0x1009b0bb]
cdq
mov dword [ebp - 0x678], eax
mov dword [ebp - 0x674], edx
mov edx, dword [0x1009b138]
cmp edx, dword [ebp - 0x678]
jne 0x10036be0
mov eax, dword [0x1009b13c]
cmp eax, dword [ebp - 0x674]
jne 0x10036be0
mov dword [ebp - 0x22c], 1
jmp 0x10036bea
mov dword [ebp - 0x22c], 0
cmp dword [0x1009b138], 0x24
jne 0x10036c08
cmp dword [0x1009b13c], 0
jne 0x10036c08
mov dword [ebp - 0x230], 1
jmp 0x10036c12
mov dword [ebp - 0x230], 0
mov ecx, dword [ebp - 0x22c]
cmp ecx, dword [ebp - 0x230]
jne 0x10036cb1
imul edx, dword [0x1009b190], 0x5660
xor eax, eax
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], eax
movzx ecx, word [ebp - 0x18]
imul edx, ecx, 0x243e7e16
mov byte [0x1009b01f], dl
movsx eax, byte [0x1009b0ba]
sub eax, dword [0x1009b144]
mov dword [ebp - 0x48], eax
mov ecx, dword [0x1009b168]
mov edx, dword [0x1009b16c]
add ecx, 0x7f8f50b5
adc edx, 0
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
movzx eax, word [ebp - 0x14]
cdq
mov ecx, dword [ebp - 0x68]
sub ecx, eax
mov eax, dword [ebp - 0x64]
sbb eax, edx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], eax
cmp dword [0x1009b190], 0
je 0x10036c9a
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x234], ecx
jmp 0x10036ca6
mov edx, dword [0x1009b18c]
mov dword [ebp - 0x234], edx
mov al, byte [ebp - 0x234]
mov byte [0x1009b01f], al
jmp 0x10036af5
mov edx, dword [0x1009b170]
push edx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - 0x5cc]
add eax, dword [ebp - 0x238]
mov ecx, dword [ebp - 0x238]
or ecx, dword [ebp - 0x5d0]
cmp eax, ecx
je 0x1003c07d
xor edx, edx
mov dword [ebp - 0x3c], 8
mov dword [ebp - 0x38], edx
movsx eax, word [ebp - 0x10]
cdq
push 0x5447
push 0x25fb88fa
push edx
push eax
call fcn.1006c090
mov byte [0x1009b0ef], al
mov eax, dword [0x1009b148]
shl eax, 6
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov dword [ebp - 0x60], 0x754a82a
mov dword [ebp - 0x5c], ecx
movsx edx, byte [0x1009b0ba]
mov eax, dword [0x1009b144]
sub eax, edx
mov ecx, dword [0x1009b144]
sub ecx, eax
mov dword [0x1009b144], ecx
mov edx, dword [ebp - 0x20]
add edx, 0x777032e0
movzx eax, byte [0x1009b01f]
and eax, edx
mov byte [0x1009b01f], al
mov ecx, dword [0x1009b138]
mov edx, dword [0x1009b13c]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
movzx eax, word [ebp - 0x1c]
movzx ecx, byte [ebp - 3]
imul eax, ecx
mov word [ebp - 0x1c], ax
movsx eax, byte [ebp - 1]
cdq
push 0xee340
push 0xc0d8364b
push edx
push eax
call fcn.1006c090
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
movsx edx, word [ebp - 0x10]
mov eax, dword [ebp - 0x34]
add eax, edx
mov ecx, dword [ebp - 0x34]
sub ecx, eax
mov dword [ebp - 0x34], ecx
mov edx, dword [0x1009bc7c]
mov dword [ebp - 0x174], edx
mov byte [0x1009b01f], 2
movzx eax, word [ebp - 0x14]
test eax, eax
jne 0x10036e2e
mov dword [ebp - 0x240], 1
jmp 0x10036e38
mov dword [ebp - 0x240], 0
movzx ecx, word [ebp - 0x14]
test ecx, ecx
jne 0x10036e4c
mov dword [ebp - 0x23c], 1
jmp 0x10036e56
mov dword [ebp - 0x23c], 0
mov edx, dword [0x1009b190]
sub edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x23c]
jne 0x10036e73
mov dword [ebp - 0x244], 1
jmp 0x10036e7d
mov dword [ebp - 0x244], 0
movsx eax, byte [ebp - 1]
imul eax, dword [0x1009b18c]
not eax
mov ecx, dword [ebp - 0x240]
sub ecx, dword [0x1009b1b0]
xor eax, ecx
and eax, dword [ebp - 0x244]
xor edx, edx
mov dword [0x1009b150], eax
mov dword [0x1009b154], edx
mov eax, dword [0x1009b130]
mov ecx, dword [0x1009b134]
sub eax, 0x5750
sbb ecx, 0
mov dword [0x1009b138], eax
mov dword [0x1009b13c], ecx
mov edx, dword [0x1009b14c]
mov byte [ebp - 3], dl
mov al, byte [0x1009b01f]
mov byte [ebp - 0x170], al
cmp byte [ebp - 0x170], 0
je 0x10036f05
cmp byte [ebp - 0x170], 1
je 0x10036faf
cmp byte [ebp - 0x170], 2
je 0x10037043
jmp 0x10037118
imul ecx, dword [ebp - 0x48], 0x63a8c3ff
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xa20], eax
mov word [ebp - 0x18], dx
cmp dword [0x1009b148], 0
jne 0x10036f34
mov dword [ebp - 0x248], 1
jmp 0x10036f3e
mov dword [ebp - 0x248], 0
movzx eax, word [ebp - 0x1c]
movzx ecx, byte [ebp - 4]
movzx edx, byte [ebp - 4]
not edx
add ecx, edx
add eax, ecx
cdq
mov esi, eax
mov eax, dword [0x1009b188]
imul eax, dword [ebp - 0x248]
cdq
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x38]
push edi
push ecx
push edx
push eax
call fcn.1006c090
xor esi, eax
not esi
mov dword [0x1009b18c], esi
movzx edx, word [ebp - 0x14]
add edx, dword [ebp - 0x24]
mov word [ebp - 0x14], dx
push 0
push 0xa
mov eax, dword [0x1009b13c]
push eax
mov ecx, dword [0x1009b138]
push ecx
call fcn.1006c090
mov dword [0x1009b140], eax
imul edx, dword [0x1009b14c], 0x16
mov word [ebp - 0xc], dx
jmp 0x10037118
movzx eax, byte [0x1009b0ef]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
sub ecx, eax
sbb esi, edx
movzx eax, byte [0x1009b033]
movzx edx, word [0x1009b184]
add eax, edx
cdq
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov ecx, dword [0x1009b168]
mov edx, dword [0x1009b16c]
mov dword [ebp - 0xa24], edx
add eax, ecx
mov byte [ebp - 5], al
movzx eax, byte [0x1009b033]
add eax, 0x2787
and eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x58]
add ecx, 0xba1c18fe
mov byte [0x1009b0a7], cl
movsx edx, byte [0x1009b0bb]
imul eax, edx, 0xfa2dd666
mov word [0x1009b180], ax
movzx eax, byte [0x1009b07e]
add eax, 0x8b
cdq
mov dword [0x1009b178], eax
mov dword [0x1009b17c], edx
jmp 0x10037118
mov ecx, dword [0x1009b19c]
mov edx, dword [0x1009b138]
sub edx, dword [0x1009b198]
mov eax, dword [0x1009b13c]
sbb eax, ecx
mov dword [0x1009b138], edx
mov dword [0x1009b13c], eax
movzx ecx, byte [0x1009b01f]
test ecx, ecx
jne 0x1003707e
mov dword [ebp - 0x24c], 1
jmp 0x10037088
mov dword [ebp - 0x24c], 0
movzx eax, byte [0x1009b07e]
xor eax, dword [ebp - 0x24c]
sub eax, dword [ebp - 0x34]
cdq
mov ebx, eax
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
mov ecx, dword [0x1009b130]
mov esi, dword [0x1009b134]
push esi
push ecx
push eax
push edx
call fcn.1006c090
sub eax, dword [0x1009b178]
add ebx, eax
mov byte [ebp - 5], bl
push 0xa56de
push 0xa1613c8f
mov edx, dword [0x1009b164]
push edx
mov eax, dword [0x1009b160]
push eax
call fcn.1006c090
mov dword [0x1009b1a0], eax
mov ecx, dword [0x1009b18c]
not ecx
mov edx, dword [0x1009b144]
lea eax, [ecx + edx - 0x80f4]
mov word [ebp - 0x1c], ax
mov eax, dword [ebp - 0x20]
cdq
mov ecx, eax
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xa28], eax
sub ecx, edx
mov eax, dword [ebp - 0x20]
cdq
and eax, ecx
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x174]
add ecx, 0x1d
mov dword [ebp - 0x288], ecx
mov edx, dword [0x1009bc7c]
xor eax, eax
mov dword [0x1009b160], edx
mov dword [0x1009b164], eax
push 0
push 0xab
mov ecx, dword [0x1009b17c]
push ecx
mov edx, dword [0x1009b178]
push edx
call fcn.1006c090
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x58]
add eax, 0x3bb5
mov ecx, dword [ebp - 0x54]
adc ecx, 0
mov dword [0x1009b178], eax
mov dword [0x1009b17c], ecx
mov edx, dword [0x1009b164]
push edx
mov eax, dword [0x1009b160]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x50]
push edx
call fcn.1006c090
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x174]
add eax, 0x2a7
mov dword [ebp - 0x4dc], eax
movzx eax, byte [0x1009b07f]
cdq
mov ebx, eax
movzx eax, byte [0x1009b033]
cdq
xor ecx, ecx
mov esi, dword [0x1009b198]
mov edi, dword [0x1009b19c]
add esi, dword [0x1009b190]
adc edi, ecx
not esi
not edi
push edi
push esi
push edx
push eax
call fcn.1006c090
add ebx, eax
mov byte [0x1009b0a7], bl
movzx edx, byte [0x1009b07f]
movsx eax, word [ebp - 0x10]
sub edx, eax
mov byte [0x1009b07f], dl
movzx ecx, byte [ebp - 4]
sub ecx, 0x50152c1f
mov dword [ebp - 0x48], ecx
movzx eax, word [ebp - 0x18]
cdq
push 0x7dc69
push 0xb4891aaf
push edx
push eax
call fcn.1006c090
mov dword [ebp - 0x48], eax
mov edx, dword [0x1009b18c]
xor eax, eax
push eax
push edx
mov ecx, dword [0x1009b17c]
push ecx
mov edx, dword [0x1009b178]
push edx
call fcn.1006c090
mov dword [0x1009b178], eax
mov dword [0x1009b17c], edx
mov eax, dword [ebp - 0x174]
add eax, 0x146
mov dword [ebp - 0xa2c], eax
xor ecx, ecx
mov byte [ebp - 0x74], cl
lea edx, [ebp - 0xad8]
push edx
lea ecx, [ebp - 0x74]
call fcn.10004460
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], 0
jmp 0x10037285
mov eax, dword [ebp - 0x88]
add eax, 1
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 6
jae 0x100372e7
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x8c]
lea eax, [edx + ecx*2 + 2]
mov dword [ebp - 0x5d4], eax
mov ecx, dword [ebp - 0x5d4]
movzx edx, word [ecx]
mov eax, dword [ebp - 0x8c]
movsx ecx, byte [eax]
xor edx, ecx
mov word [ebp - 0x138], dx
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x8c]
lea ecx, [eax + edx*2 + 2]
mov dword [ebp - 0x5d8], ecx
mov edx, dword [ebp - 0x5d8]
mov ax, word [ebp - 0x138]
mov word [edx], ax
jmp 0x10037276
mov ecx, 6
shl ecx, 1
mov edx, dword [ebp - 0x8c]
lea eax, [edx + ecx + 2]
mov dword [ebp - 0x5dc], eax
xor ecx, ecx
mov edx, dword [ebp - 0x5dc]
mov word [edx], cx
mov eax, dword [ebp - 0x8c]
add eax, 2
mov dword [ebp - 0x5e0], eax
mov ecx, dword [ebp - 0x5e0]
push ecx
lea edx, [ebp - 0x10f4]
push edx
push 0
push 0
call fcn.100012f0
call eax
xor eax, eax
mov byte [ebp - 0x6f], al
lea ecx, [ebp - 0xb62]
push ecx
lea ecx, [ebp - 0x6f]
call fcn.10004710
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], 0
jmp 0x10037366
mov edx, dword [ebp - 0x90]
add edx, 1
mov dword [ebp - 0x90], edx
cmp dword [ebp - 0x90], 0xd
jae 0x100373c8
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x94]
lea edx, [ecx + eax*2 + 2]
mov dword [ebp - 0x5e4], edx
mov eax, dword [ebp - 0x5e4]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x94]
movsx eax, byte [edx]
xor ecx, eax
mov word [ebp - 0x13a], cx
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x94]
lea eax, [edx + ecx*2 + 2]
mov dword [ebp - 0x5e8], eax
mov ecx, dword [ebp - 0x5e8]
mov dx, word [ebp - 0x13a]
mov word [ecx], dx
jmp 0x10037357
mov eax, 0xd
shl eax, 1
mov ecx, dword [ebp - 0x94]
lea edx, [ecx + eax + 2]
mov dword [ebp - 0x5ec], edx
xor eax, eax
mov ecx, dword [ebp - 0x5ec]
mov word [ecx], ax
mov edx, dword [ebp - 0x94]
add edx, 2
mov dword [ebp - 0x5f0], edx
mov eax, dword [ebp - 0x5f0]
push eax
lea ecx, [ebp - 0x10f4]
push ecx
push 0
push 0
call fcn.100012f0
call eax
xor edx, edx
mov byte [ebp - 0x123], dl
mov byte [ebp - 0x19c], 0xa
xor eax, eax
mov byte [ebp - 0x19b], al
mov ecx, 0x24
mov word [ebp - 0x19a], cx
mov edx, 0x67
mov word [ebp - 0x198], dx
mov eax, 0x79
mov word [ebp - 0x196], ax
mov ecx, 0x7a
mov word [ebp - 0x194], cx
xor edx, edx
mov word [ebp - 0x192], dx
mov dword [ebp - 0x98], 0
jmp 0x1003747d
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 4
jae 0x100374d7
mov ecx, dword [ebp - 0x98]
lea edx, [ebp + ecx*2 - 0x19a]
mov dword [ebp - 0x90c], edx
mov eax, dword [ebp - 0x90c]
movzx ecx, word [eax]
movsx edx, byte [ebp - 0x19c]
xor ecx, edx
mov word [ebp - 0x19e], cx
mov eax, dword [ebp - 0x98]
lea ecx, [ebp + eax*2 - 0x19a]
mov dword [ebp - 0x910], ecx
mov edx, dword [ebp - 0x910]
mov ax, word [ebp - 0x19e]
mov word [edx], ax
jmp 0x1003746e
mov ecx, 4
shl ecx, 1
lea edx, [ebp + ecx - 0x19a]
mov dword [ebp - 0x914], edx
xor eax, eax
mov ecx, dword [ebp - 0x914]
mov word [ecx], ax
lea edx, [ebp - 0x19a]
mov dword [ebp - 0x490], edx
mov eax, dword [ebp - 0x490]
push eax
lea ecx, [ebp - 0x10f4]
push ecx
push 0
push 0
call fcn.100012f0
call eax
mov byte [0x1009b01f], 0x11
mov dword [ebp - 0x178], 0x16e1
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
push esi
push ecx
push eax
push edx
call fcn.1006c090
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movsx ecx, word [ebp - 0x10]
movsx edx, byte [ebp - 5]
imul ecx, edx
mov word [ebp - 0x10], cx
cmp dword [0x1009b18c], 0
je 0x1003757c
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x3a0], ecx
jmp 0x1003758d
movzx eax, word [ebp - 0x18]
cdq
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x3a0], edx
mov dl, byte [ebp - 0x3a4]
mov byte [0x1009b0a7], dl
cmp dword [ebp - 0x178], 0x1553
jle 0x10037604
movsx eax, word [ebp - 0x10]
mov ecx, dword [0x1009b144]
add ecx, eax
movzx eax, byte [0x1009b07e]
cdq
mov edx, dword [ebp - 0x58]
sub edx, eax
add ecx, edx
mov dword [0x1009b1a0], ecx
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov cl, 8
call fcn.1006c1a0
mov dword [ebp - 0x48], eax
movzx eax, byte [0x1009b0ee]
mov ecx, dword [0x1009b188]
add ecx, eax
mov edx, dword [0x1009b188]
and edx, ecx
mov dword [0x1009b188], edx
mov eax, dword [ebp - 0x178]
sub eax, 1
mov dword [ebp - 0x178], eax
jmp 0x10037599
movzx ecx, byte [0x1009b01f]
movsx edx, byte [ebp - 1]
add edx, 0x11
cmp ecx, edx
jne 0x1003775b
mov eax, dword [0x1009b140]
cdq
mov ecx, eax
mov esi, edx
movsx eax, byte [ebp - 2]
cdq
add eax, 0x751a04b5
adc edx, 0x3957c
mov dword [ebp - 0x680], ecx
mov dword [ebp - 0x67c], esi
mov dword [ebp - 0x688], eax
mov dword [ebp - 0x684], edx
mov edx, dword [ebp - 0x680]
cmp edx, dword [ebp - 0x688]
jne 0x1003775b
mov eax, dword [ebp - 0x67c]
cmp eax, dword [ebp - 0x684]
jne 0x1003775b
mov ecx, dword [0x1009b138]
sub ecx, 0xa819f491
mov eax, dword [0x1009b14c]
cdq
sub eax, ecx
mov dword [0x1009b14c], eax
mov edx, dword [0x1009b148]
shl edx, 4
mov dword [ebp - 0x20], edx
mov eax, dword [0x1009b148]
sub eax, 0xbe74
mov dword [0x1009b170], eax
mov ecx, dword [0x1009b198]
mov edx, dword [0x1009b19c]
mov dword [ebp - 0xa30], edx
add ecx, 0x7ad1450c
mov byte [ebp - 5], cl
movsx eax, byte [ebp - 1]
sub eax, 0x6e70ced7
xor ecx, ecx
mov dword [0x1009b130], eax
mov dword [0x1009b134], ecx
jmp 0x1003775b
mov byte [0x1009b01f], 0x11
movzx eax, byte [0x1009b0ef]
mov ecx, dword [0x1009b148]
sub ecx, eax
mov dword [0x1009b148], ecx
mov dl, byte [0x1009b0a6]
add dl, 1
mov byte [0x1009b0a6], dl
movzx eax, byte [ebp - 3]
cdq
add eax, 0xdf5d0c25
mov dword [ebp - 0x30], eax
cmp dword [0x1009b14c], 0
je 0x10037805
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x4c]
push edx
mov edx, dword [ebp - 0x50]
push edx
push ecx
push eax
call fcn.1006c090
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], esi
movsx edx, byte [0x1009b0a7]
movzx eax, byte [0x1009b0ef]
xor edx, eax
mov byte [0x1009b0a7], dl
mov ecx, dword [0x1009b1b0]
shl ecx, 1
mov word [ebp - 0x1c], cx
imul edx, dword [ebp - 0x24], 0x45dbcec1
mov dword [0x1009b170], edx
mov eax, 0xbb
sub eax, dword [0x1009b144]
mov dword [ebp - 0x20], eax
mov byte [0x1009b0ba], 0x74
mov ecx, dword [ebp - 0x17c]
xor ecx, 0xfe
imul edx, ecx, 0xc3
mov eax, dword [ebp - 0x17c]
sub eax, dword [ebp - 0x17c]
mov ecx, 0xaaee
sub ecx, eax
cmp edx, ecx
je 0x1003c07d
mov edx, dword [0x1009b14c]
imul edx, dword [ebp - 0x24]
mov eax, dword [0x1009b14c]
add eax, edx
mov dword [0x1009b14c], eax
mov cl, byte [ebp - 6]
add cl, 1
mov byte [ebp - 6], cl
movsx edx, word [ebp - 0x10]
mov eax, dword [ebp - 0x24]
imul eax, edx
movsx ecx, byte [ebp - 5]
sub ecx, 0x7b4d9932
imul eax, ecx
mov word [ebp - 0x18], ax
movsx eax, word [0x1009b180]
add eax, 0xa
cdq
mov dword [0x1009b138], eax
mov dword [0x1009b13c], edx
mov edx, dword [ebp - 0x68]
xor edx, 0xba4e
mov byte [ebp - 6], dl
mov eax, 0xce
mov word [0x1009b180], ax
movsx ecx, word [ebp - 0x10]
test ecx, ecx
jne 0x100378ad
mov dword [ebp - 0x254], 1
jmp 0x100378b7
mov dword [ebp - 0x254], 0
movzx edx, byte [ebp - 4]
add edx, dword [ebp - 0x254]
jne 0x100378cf
mov dword [ebp - 0x258], 1
jmp 0x100378d9
mov dword [ebp - 0x258], 0
mov eax, dword [ebp - 0x258]
mov dword [0x1009b14c], eax
movzx ecx, word [ebp - 0x18]
sub ecx, dword [0x1009b1b0]
mov word [ebp - 0x18], cx
movsx eax, byte [ebp - 2]
add eax, 0x86
cdq
mov dword [0x1009b160], eax
mov dword [0x1009b164], edx
movzx edx, word [ebp - 0xc]
movzx eax, byte [0x1009b0ee]
imul edx, eax
mov word [ebp - 0xc], dx
movsx ecx, word [0x1009b180]
movsx edx, byte [ebp - 1]
add ecx, edx
cmp dword [0x1009b148], ecx
jne 0x10037c79
mov dword [ebp - 0x180], 0x60
jmp 0x1003794d
mov eax, dword [ebp - 0x180]
sub eax, 1
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0
jle 0x10037998
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x25c], eax
cmp dword [ebp - 0x25c], 0
je 0x1003798a
mov ecx, dword [ebp - 0x25c]
push ecx
call dword [sym.imp.USER32.dll_GetMenu]
mov dword [ebp - 0xa38], eax
call dword [sym.imp.USER32.dll_EndMenu]
mov dword [ebp - 0xa3c], eax
mov dx, word [ebp - 0x1c]
add dx, 1
mov word [ebp - 0x1c], dx
jmp 0x1003793e
movzx eax, byte [0x1009b033]
imul ecx, eax, 0xdaeb
mov dword [0x1009b1a0], ecx
push 0
push 0xbb
mov edx, dword [0x1009b164]
push edx
mov eax, dword [0x1009b160]
push eax
call fcn.1006c090
mov ecx, dword [0x1009b1a8]
mov esi, dword [0x1009b1ac]
sub ecx, 0x47
sbb esi, 0
not ecx
not esi
push esi
push ecx
push edx
push eax
call fcn.1006c090
mov esi, eax
mov edx, 0xffff6402
sub edx, dword [0x1009b160]
mov eax, 0xffffffff
sbb eax, dword [0x1009b164]
push eax
push edx
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp - 0x68]
push edx
call fcn.1006c090
not eax
sub esi, eax
mov word [ebp - 0x18], si
mov eax, dword [0x1009b144]
imul eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x20], ecx
movzx eax, byte [0x1009b07f]
cdq
mov ecx, dword [ebp - 0x50]
add ecx, 0x8349
mov esi, dword [ebp - 0x4c]
adc esi, 0
mov dword [ebp - 0x698], eax
mov dword [ebp - 0x694], edx
mov dword [ebp - 0x6a0], ecx
mov dword [ebp - 0x69c], esi
mov edx, dword [ebp - 0x698]
cmp edx, dword [ebp - 0x6a0]
jne 0x10037c79
mov eax, dword [ebp - 0x694]
cmp eax, dword [ebp - 0x69c]
jne 0x10037c79
mov ecx, dword [0x1009b138]
or ecx, dword [0x1009b13c]
je 0x10037ad5
mov edx, dword [str.EventData]
mov dword [ebp - 0x928], edx
mov eax, dword [0x1007e58c]
mov dword [ebp - 0x924], eax
mov ecx, dword [0x1007e590]
mov dword [ebp - 0x920], ecx
mov edx, dword [0x1007e594]
mov dword [ebp - 0x91c], edx
mov eax, dword [0x1007e598]
mov dword [ebp - 0x918], eax
lea ecx, [ebp - 0x928]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [0x1009b148], eax
jmp 0x10037b80
movzx edx, word [ebp - 0x14]
movzx eax, word [ebp - 0x14]
cmp edx, eax
jg 0x10037b80
movsx eax, word [0x1009b180]
cdq
sub eax, 0x566ff87f
sbb edx, 0xa613c
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
movzx eax, word [ebp - 0x18]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x58]
movzx eax, word [ebp - 0x18]
cdq
add eax, ecx
mov word [ebp - 0x18], ax
imul edx, dword [0x1009b148], 0x4646
mov dword [0x1009b14c], edx
mov eax, dword [ebp - 0x2c]
or eax, dword [ebp - 0x28]
jne 0x10037b37
mov dword [ebp - 0x260], 1
jmp 0x10037b41
mov dword [ebp - 0x260], 0
movsx ecx, byte [ebp - 5]
xor ecx, dword [ebp - 0x260]
movsx edx, byte [0x1009b0bb]
movzx eax, word [ebp - 0x18]
or edx, eax
sub ecx, edx
mov byte [0x1009b0ee], cl
movzx eax, word [ebp - 0xc]
cdq
mov ecx, eax
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xa40], eax
xor ecx, edx
movzx eax, word [ebp - 0xc]
cdq
add eax, ecx
mov word [ebp - 0xc], ax
jmp 0x1003788e
movsx eax, word [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [0x1009b188], eax
cmp dword [0x1009b188], 0
jl 0x10037cbb
movzx ecx, byte [0x1009b07f]
mov edx, dword [ebp - 0x34]
sub edx, ecx
mov eax, dword [ebp - 0x34]
or eax, edx
mov dword [ebp - 0x34], eax
movzx eax, byte [0x1009b0a6]
cdq
mov dword [0x1009b178], eax
mov dword [0x1009b17c], edx
jmp 0x10037d0b
movzx ecx, byte [0x1009b0ee]
test ecx, ecx
je 0x10037d0b
movzx edx, byte [0x1009b07f]
and edx, dword [0x1009b18c]
mov byte [0x1009b07f], dl
mov eax, dword [0x1009bc7c]
xor ecx, ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
mov edx, dword [0x1009b150]
mov eax, dword [0x1009b154]
mov dword [ebp - 0xa44], eax
add edx, dword [0x1009b178]
mov word [ebp - 0x18], dx
mov dword [0x1009b14c], 0x9c
lea ecx, [ebp - 0x10f4]
push ecx
mov edx, dword [0x1034d0d4]
push edx
call fcn.1003f7d0
test eax, eax
je 0x10038439
mov eax, dword [0x1009b18c]
xor ecx, ecx
mov dword [ebp - 0x6b0], eax
mov dword [ebp - 0x6ac], ecx
mov edx, dword [0x1009b138]
cmp edx, dword [ebp - 0x6b0]
jne 0x10037d60
mov eax, dword [0x1009b13c]
cmp eax, dword [ebp - 0x6ac]
jne 0x10037d60
mov dword [ebp - 0x26c], 1
jmp 0x10037d6a
mov dword [ebp - 0x26c], 0
cmp dword [0x1009b138], 0x5b
jne 0x10037d88
cmp dword [0x1009b13c], 0
jne 0x10037d88
mov dword [ebp - 0x270], 1
jmp 0x10037d92
mov dword [ebp - 0x270], 0
mov ecx, dword [ebp - 0x26c]
cmp ecx, dword [ebp - 0x270]
jge 0x10037dc7
mov ecx, 9
mov esi, str.incomplete_distanc
lea edi, [ebp - 0xb10]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea edx, [ebp - 0xb10]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [0x1009b180], ax
xor eax, eax
mov byte [ebp - 0x124], al
mov byte [ebp - 0x120], 0xa
xor ecx, ecx
mov byte [ebp - 0x11f], cl
mov edx, 0x27
mov word [ebp - 0x11e], dx
mov eax, 0x70
mov word [ebp - 0x11c], ax
mov ecx, 0x2a
mov word [ebp - 0x11a], cx
xor edx, edx
mov word [ebp - 0x118], dx
mov dword [ebp - 0x9c], 0
jmp 0x10037e26
mov eax, dword [ebp - 0x9c]
add eax, 1
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 3
jae 0x10037e80
mov ecx, dword [ebp - 0x9c]
lea edx, [ebp + ecx*2 - 0x11e]
mov dword [ebp - 0x494], edx
mov eax, dword [ebp - 0x494]
movzx ecx, word [eax]
movsx edx, byte [ebp - 0x120]
xor ecx, edx
mov word [ebp - 0x13c], cx
mov eax, dword [ebp - 0x9c]
lea ecx, [ebp + eax*2 - 0x11e]
mov dword [ebp - 0x498], ecx
mov edx, dword [ebp - 0x498]
mov ax, word [ebp - 0x13c]
mov word [edx], ax
jmp 0x10037e17
mov ecx, 3
shl ecx, 1
lea edx, [ebp + ecx - 0x11e]
mov dword [ebp - 0x49c], edx
xor eax, eax
mov ecx, dword [ebp - 0x49c]
mov word [ecx], ax
lea edx, [ebp - 0x11e]
mov dword [ebp - 0x4a0], edx
mov eax, dword [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0x3d2c]
push ecx
push 0
push 0
call fcn.10001410
call eax
xor edx, edx
mov byte [ebp - 0x125], dl
mov byte [ebp - 0xd6], 0x67
xor eax, eax
mov byte [ebp - 0xd5], al
mov ecx, 0x45
mov word [ebp - 0xd4], cx
xor edx, edx
mov word [ebp - 0xd2], dx
mov dword [ebp - 0xa8], 0
jmp 0x10037f0b
mov eax, dword [ebp - 0xa8]
add eax, 1
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 1
jae 0x10037f65
mov ecx, dword [ebp - 0xa8]
lea edx, [ebp + ecx*2 - 0xd4]
mov dword [ebp - 0x4a4], edx
mov eax, dword [ebp - 0x4a4]
movzx ecx, word [eax]
movsx edx, byte [ebp - 0xd6]
xor ecx, edx
mov word [ebp - 0x13e], cx
mov eax, dword [ebp - 0xa8]
lea ecx, [ebp + eax*2 - 0xd4]
mov dword [ebp - 0x4a8], ecx
mov edx, dword [ebp - 0x4a8]
mov ax, word [ebp - 0x13e]
mov word [edx], ax
jmp 0x10037efc
mov ecx, 1
shl ecx, 1
lea edx, [ebp + ecx - 0xd4]
mov dword [ebp - 0x4ac], edx
xor eax, eax
mov ecx, dword [ebp - 0x4ac]
mov word [ecx], ax
lea edx, [ebp - 0xd4]
mov dword [ebp - 0x4b0], edx
mov eax, dword [ebp - 0x4b0]
push eax
lea ecx, [ebp - 0x3d2c]
push ecx
push 0
push 0
call fcn.100012f0
call eax
lea edx, [ebp - 0x10f4]
push edx
lea eax, [ebp - 0x3d2c]
push eax
push 0
push 0
call fcn.100012f0
call eax
push 0x1007e5c4
lea ecx, [ebp - 0x3d2c]
push ecx
push 0
push 0
call fcn.100012f0
call eax
mov edx, dword [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 0x62b527c9
or eax, 0xbb459
je 0x10038051
movsx ecx, byte [ebp - 1]
test ecx, ecx
jne 0x10038051
movzx edx, byte [0x1009b07f]
movzx eax, byte [0x1009b01f]
add edx, eax
mov byte [0x1009b07f], dl
mov ecx, dword [0x1009b14c]
add ecx, 0x72
mov byte [0x1009b0ee], cl
movzx edx, word [ebp - 0x14]
test edx, edx
je 0x10038030
movzx eax, word [ebp - 0xc]
mov dword [ebp - 0x274], eax
jmp 0x1003803a
movsx ecx, byte [ebp - 5]
mov dword [ebp - 0x274], ecx
mov eax, dword [ebp - 0x274]
cdq
mov dword [0x1009b130], eax
mov dword [0x1009b134], edx
jmp 0x1003824f
mov eax, dword [0x1009b140]
cdq
mov ecx, dword [0x1009b198]
mov esi, dword [0x1009b19c]
mov dword [ebp - 0x6b8], eax
mov dword [ebp - 0x6b4], edx
mov dword [ebp - 0x6c0], ecx
mov dword [ebp - 0x6bc], esi
mov edx, dword [ebp - 0x6b4]
cmp edx, dword [ebp - 0x6bc]
jb 0x100380e7
ja 0x10038099
mov eax, dword [ebp - 0x6b8]
cmp eax, dword [ebp - 0x6c0]
jb 0x100380e7
movsx eax, byte [0x1009b0a7]
cdq
mov ecx, dword [0x1009b168]
mov esi, dword [0x1009b16c]
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov dword [0x1009b168], eax
mov dword [0x1009b16c], edx
movsx edx, byte [ebp - 6]
sub edx, 0x60d805ef
mov dword [ebp - 0x34], edx
mov eax, 0x8f84c
mov dword [0x1009b1a8], 0x7ee00b01
mov dword [0x1009b1ac], eax
jmp 0x1003824f
movzx ecx, word [ebp - 0xc]
test ecx, ecx
je 0x1003812c
movsx edx, word [0x1009b180]
or edx, dword [0x1009b144]
mov word [0x1009b158], dx
movsx eax, byte [ebp - 2]
movsx ecx, byte [0x1009b0ba]
sub eax, ecx
movsx edx, byte [ebp - 2]
and edx, eax
mov byte [ebp - 2], dl
movsx eax, word [ebp - 0x10]
movsx ecx, byte [ebp - 6]
sub eax, ecx
mov word [ebp - 0x10], ax
jmp 0x1003824f
mov ecx, dword [0x1009b1a8]
mov esi, dword [0x1009b1ac]
movzx eax, byte [ebp - 3]
cdq
mov dword [ebp - 0x6c8], ecx
mov dword [ebp - 0x6c4], esi
mov dword [ebp - 0x6d0], eax
mov dword [ebp - 0x6cc], edx
mov edx, dword [ebp - 0x6c8]
cmp edx, dword [ebp - 0x6d0]
jne 0x1003824f
mov eax, dword [ebp - 0x6c4]
cmp eax, dword [ebp - 0x6cc]
jne 0x1003824f
movsx ecx, word [0x1009b180]
test ecx, ecx
jne 0x10038198
xor edx, edx
mov dword [ebp - 0x3ac], 1
mov dword [ebp - 0x3a8], edx
jmp 0x100381a3
xorps xmm0, xmm0
movlpd qword [ebp - 0x3ac], xmm0
mov eax, dword [ebp - 0x3a8]
push eax
mov ecx, dword [ebp - 0x3ac]
push ecx
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.1006c090
mov byte [ebp - 1], al
movzx ecx, byte [0x1009b01f]
mov dword [0x1009b190], ecx
movzx edx, word [ebp - 0xc]
test edx, edx
jne 0x100381e2
mov dword [ebp - 0x278], 1
jmp 0x100381ec
mov dword [ebp - 0x278], 0
mov eax, dword [0x1009b170]
imul eax, dword [ebp - 0x278]
test eax, eax
jne 0x10038208
mov dword [ebp - 0x27c], 1
jmp 0x10038212
mov dword [ebp - 0x27c], 0
movzx eax, byte [0x1009b0ee]
not eax
and eax, dword [ebp - 0x27c]
not eax
cdq
mov dword [0x1009b130], eax
mov dword [0x1009b134], edx
mov ecx, dword [0x1009b170]
sub ecx, dword [ebp - 0x24]
add ecx, dword [0x1009b170]
mov dword [0x1009b170], ecx
movsx eax, byte [ebp - 5]
cdq
add eax, dword [ebp - 0x50]
mov byte [ebp - 5], al
lea edx, [ebp - 0x2d28]
mov dword [ebp - 0x940], edx
xor eax, eax
mov byte [ebp - 0x6e], al
lea ecx, [ebp - 0xca6]
push ecx
lea ecx, [ebp - 0x6e]
call fcn.10001bc0
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], 0
jmp 0x10038290
mov edx, dword [ebp - 0xac]
add edx, 1
mov dword [ebp - 0xac], edx
cmp dword [ebp - 0xac], 0x1d
jae 0x100382f2
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xb0]
lea edx, [ecx + eax*2 + 2]
mov dword [ebp - 0x4b4], edx
mov eax, dword [ebp - 0x4b4]
movzx ecx, word [eax]
mov edx, dword [ebp - 0xb0]
movsx eax, byte [edx]
xor ecx, eax
mov word [ebp - 0x140], cx
mov ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0xb0]
lea eax, [edx + ecx*2 + 2]
mov dword [ebp - 0x4b8], eax
mov ecx, dword [ebp - 0x4b8]
mov dx, word [ebp - 0x140]
mov word [ecx], dx
jmp 0x10038281
mov eax, 0x1d
shl eax, 1
mov ecx, dword [ebp - 0xb0]
lea edx, [ecx + eax + 2]
mov dword [ebp - 0x4bc], edx
xor eax, eax
mov ecx, dword [ebp - 0x4bc]
mov word [ecx], ax
mov edx, dword [ebp - 0xb0]
add edx, 2
mov dword [ebp - 0x4c0], edx
mov eax, dword [ebp - 0x4c0]
mov dword [ebp - 0x93c], eax
xor ecx, ecx
mov byte [ebp - 0x78], cl
lea edx, [ebp - 0xbda]
push edx
lea ecx, [ebp - 0x78]
call fcn.10001e40
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], 0
jmp 0x10038364
mov eax, dword [ebp - 0xb4]
add eax, 1
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0xb4], 0x14
jae 0x100383c6
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xb8]
lea eax, [edx + ecx*2 + 2]
mov dword [ebp - 0x4c4], eax
mov ecx, dword [ebp - 0x4c4]
movzx edx, word [ecx]
mov eax, dword [ebp - 0xb8]
movsx ecx, byte [eax]
xor edx, ecx
mov word [ebp - 0x142], dx
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb8]
lea ecx, [eax + edx*2 + 2]
mov dword [ebp - 0x4c8], ecx
mov edx, dword [ebp - 0x4c8]
mov ax, word [ebp - 0x142]
mov word [edx], ax
jmp 0x10038355
mov ecx, 0x14
shl ecx, 1
mov edx, dword [ebp - 0xb8]
lea eax, [edx + ecx + 2]
mov dword [ebp - 0x4cc], eax
xor ecx, ecx
mov edx, dword [ebp - 0x4cc]
mov word [edx], cx
mov eax, dword [ebp - 0xb8]
add eax, 2
mov dword [ebp - 0x4d0], eax
mov ecx, dword [ebp - 0x4d0]
mov dword [ebp - 0x938], ecx
lea edx, [ebp - 0x3d2c]
mov dword [ebp - 0x934], edx
mov dword [ebp - 0x930], 3
mov dword [ebp - 0x92c], 0
lea eax, [ebp - 0x940]
push eax
call fcn.10030410
jmp 0x1003ce61
xor ecx, ecx
mov dword [ebp - 0x60], 3
mov dword [ebp - 0x5c], ecx
movzx edx, word [0x1009b158]
movzx eax, word [0x1009b158]
sub edx, eax
jne 0x1003846b
xor ecx, ecx
mov dword [ebp - 0x3b4], 1
mov dword [ebp - 0x3b0], ecx
jmp 0x10038476
xorps xmm0, xmm0
movlpd qword [ebp - 0x3b4], xmm0
mov edx, dword [ebp - 0x3b4]
mov eax, dword [ebp - 0x3b0]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], eax
imul ecx, dword [0x1009b18c], 0x43ce314f
mov dword [0x1009b1b0], ecx
movzx edx, byte [0x1009b0ef]
movzx eax, byte [0x1009b0ee]
lea ecx, [eax + edx + 0x5e780bec]
mov byte [0x1009b0ee], cl
movsx eax, byte [0x1009b0ba]
cdq
push 0x3c951
push 0x20a3c1a4
push edx
push eax
call fcn.1006c090
mov byte [0x1009b07e], al
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x1c8], edx
mov dword [ebp - 0x1c4], eax
cmp dword [ebp - 0x1c4], 0
jl 0x10038703
jg 0x100384ff
cmp dword [ebp - 0x1c8], 0
jb 0x10038703
cmp dword [ebp - 0x1c4], 0
jg 0x10038703
jl 0x1003851b
cmp dword [ebp - 0x1c8], 3
ja 0x10038703
mov ecx, dword [ebp - 0x1c8]
mov dword [ebp - 0xab0], ecx
mov edx, dword [ebp - 0xab0]
jmp dword [edx*4 + 0x1003ce78]
movsx edx, byte [0x1009b0a7]
test edx, edx
je 0x10038831
cmp dword [0x1009b18c], 0
je 0x10038733
call dword [sym.imp.USER32.dll_GetFocus]
xor ecx, ecx
mov dword [0x1009b130], eax
mov dword [0x1009b134], ecx
jmp 0x1003882c
movsx edx, byte [ebp - 6]
test edx, edx
je 0x1003882c
cmp dword [ebp - 0x34], 0
je 0x1003882c
movzx eax, word [ebp - 0x18]
movsx ecx, byte [ebp - 6]
imul eax, ecx
movzx edx, word [ebp - 0x18]
sub edx, eax
mov word [ebp - 0x18], dx
mov eax, dword [0x1009b168]
mov ecx, dword [0x1009b16c]
mov dword [ebp - 0x6e0], eax
mov dword [ebp - 0x6dc], ecx
mov edx, dword [ebp - 0x6e0]
or edx, dword [ebp - 0x6dc]
je 0x10038790
mov eax, dword [0x1009b14c]
mov dword [ebp - 0x284], eax
jmp 0x1003879d
movzx ecx, word [0x1009b158]
mov dword [ebp - 0x284], ecx
mov dl, byte [ebp - 0x284]
mov byte [0x1009b0ef], dl
movzx eax, word [0x1009b158]
cdq
add eax, dword [ebp - 0x50]
adc edx, dword [ebp - 0x4c]
add eax, dword [ebp - 0x50]
adc edx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
movsx eax, byte [ebp - 1]
movzx ecx, word [ebp - 0x1c]
sub eax, ecx
movsx edx, byte [ebp - 1]
sub edx, eax
mov byte [ebp - 1], dl
cmp dword [0x1009b18c], 0
jne 0x100387f3
xor eax, eax
mov dword [ebp - 0x6e8], 1
mov dword [ebp - 0x6e4], eax
jmp 0x100387fe
xorps xmm0, xmm0
movlpd qword [ebp - 0x6e8], xmm0
movsx eax, byte [ebp - 2]
cdq
mov ecx, dword [0x1009b168]
mov edx, dword [0x1009b16c]
mov dword [ebp - 0xa50], edx
not ecx
add ecx, 0x990c
sub ecx, dword [ebp - 0x6e8]
not ecx
xor eax, ecx
mov byte [0x1009b0a6], al
jmp 0x1003896e
movzx eax, byte [ebp - 4]
test eax, eax
je 0x100388c3
cmp dword [ebp - 0x48], 0
jne 0x10038857
xor ecx, ecx
mov dword [ebp - 0x3bc], 1
mov dword [ebp - 0x3b8], ecx
jmp 0x10038862
xorps xmm0, xmm0
movlpd qword [ebp - 0x3bc], xmm0
mov edx, dword [ebp - 0x58]
not edx
mov eax, dword [ebp - 0x54]
not eax
mov ecx, dword [ebp - 0x3b8]
push ecx
mov ecx, dword [ebp - 0x3bc]
push ecx
push eax
push edx
call fcn.1006c090
mov byte [0x1009b0bb], al
movsx edx, byte [0x1009b0bb]
movzx eax, byte [0x1009b07e]
lea ecx, [eax + edx - 0x86]
mov byte [0x1009b07e], cl
mov edx, dword [0x1009b1a8]
mov eax, dword [0x1009b1ac]
mov dword [ebp - 0xa54], eax
xor edx, 0x5bfde7c0
mov dword [0x1009b188], edx
jmp 0x1003896e
mov ecx, dword [0x1009b160]
not ecx
mov edx, dword [0x1009b164]
not edx
mov dword [ebp - 0x6f0], ecx
mov dword [ebp - 0x6ec], edx
mov eax, dword [ebp - 0x6f0]
or eax, dword [ebp - 0x6ec]
je 0x100388f8
movzx ecx, byte [0x1009b0a6]
test ecx, ecx
jne 0x1003896e
movzx edx, byte [0x1009b07f]
movzx eax, byte [ebp - 4]
xor edx, eax
movzx ecx, byte [0x1009b07f]
add ecx, edx
mov byte [0x1009b07f], cl
movzx eax, word [ebp - 0x14]
cdq
mov edx, dword [0x1009b130]
mov ecx, dword [0x1009b134]
mov dword [ebp - 0xa58], ecx
sub eax, edx
mov byte [ebp - 4], al
push 0
push 0xb408
mov edx, dword [0x1009b164]
push edx
mov eax, dword [0x1009b160]
push eax
call fcn.1006c090
mov dword [0x1009b198], eax
mov dword [0x1009b19c], edx
mov eax, dword [ebp - 0x30]
cdq
movsx ecx, byte [ebp - 1]
sub ecx, dword [0x1009b1b0]
mov edx, dword [ebp - 0x50]
sub edx, ecx
sub eax, edx
mov dword [0x1009b140], eax
imul eax, dword [ebp - 0x288], 0xc0
mov ecx, dword [ebp - 0x4dc]
sub ecx, dword [ebp - 0x288]
cmp eax, ecx
je 0x1003c07d
mov dword [ebp - 0x1c0], 0x29
movsx edx, byte [ebp - 6]
add edx, 0x9dc2
movzx eax, byte [ebp - 4]
imul eax, edx
mov byte [ebp - 4], al
mov ecx, 1
shl ecx, 2
movzx edx, byte [ecx + 0x102f2188]
movzx eax, word [ebp - 0x1c]
add eax, edx
mov word [ebp - 0x1c], ax
movsx eax, byte [0x1009b0a7]
cdq
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
add ecx, eax
adc esi, edx
movsx eax, byte [ebp - 1]
add eax, dword [ebp - 0x48]
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x6f8], ecx
mov dword [ebp - 0x6f4], esi
mov edx, dword [ebp - 0x6f8]
or edx, dword [ebp - 0x6f4]
jne 0x10038a0f
xor eax, eax
mov dword [ebp - 0x700], 1
mov dword [ebp - 0x6fc], eax
jmp 0x10038a1a
xorps xmm0, xmm0
movlpd qword [ebp - 0x700], xmm0
movsx eax, word [ebp - 0x10]
cdq
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0xa5c], edx
add eax, ecx
mov ecx, dword [ebp - 0x2c]
add ecx, 0xff
add eax, ecx
sub eax, dword [ebp - 0x700]
mov byte [ebp - 3], al
movzx edx, byte [0x1009b033]
sub edx, 0x2f
mov byte [ebp - 2], dl
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0xa60], ecx
add eax, 0x6db5
mov dword [0x1009b14c], eax
mov eax, dword [ebp - 0x20]
cdq
mov ecx, 8
imul ecx, ecx, 0xbceb
mov dword [ecx + 0x1009bd48], eax
mov dword [ecx + 0x1009bd4c], edx
mov edx, 8
imul ecx, edx, 0x2209
movsx eax, word [ebp - 0x10]
cdq
mov esi, dword [ecx + 0x101c0cd4]
push esi
mov ecx, dword [ecx + 0x101c0cd0]
push ecx
push edx
push eax
call fcn.1006c090
mov word [ebp - 0x10], ax
mov edx, dword [0x1009b18c]
xor eax, eax
push 0x547f0
push 0x7386e2cf
push eax
push edx
call fcn.1006c090
mov dword [0x1009b198], eax
mov dword [0x1009b19c], edx
mov ecx, dword [ebp - 0x1c0]
add ecx, 1
mov dword [ebp - 0x1c0], ecx
cmp dword [ebp - 0x1c0], 0xf0f
jl 0x10038a4e
mov dword [0x1009b14c], 0xbba6992e
mov edx, dword [0x1009b150]
mov eax, dword [0x1009b154]
mov dword [ebp - 0x708], edx
mov dword [ebp - 0x704], eax
mov ecx, dword [ebp - 0x708]
cmp ecx, dword [ebp - 0x68]
jne 0x10038b22
mov edx, dword [ebp - 0x704]
cmp edx, dword [ebp - 0x64]
je 0x10038b81
xor eax, eax
mov ecx, dword [ebp - 0x50]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x4c]
sbb edx, eax
mov eax, dword [ebp - 0x50]
sub eax, ecx
mov ecx, dword [ebp - 0x4c]
sbb ecx, edx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
movsx eax, byte [ebp - 1]
cdq
mov ecx, eax
and ecx, 0xf8148d7e
mov eax, dword [0x1009b140]
cdq
sub eax, ecx
mov dword [0x1009b140], eax
mov edx, dword [0x1009b144]
add edx, 0x23e9857d
mov dword [ebp - 0x30], edx
mov eax, dword [0x1009b190]
sub eax, dword [0x1009b190]
mov ecx, dword [0x1009b190]
sub ecx, eax
mov dword [0x1009b190], ecx
mov ecx, dword [0x1009b18c]
xor esi, esi
mov eax, dword [0x1009b14c]
cdq
add eax, dword [ebp - 0x50]
adc edx, dword [ebp - 0x4c]
mov dword [ebp - 0x710], ecx
mov dword [ebp - 0x70c], esi
mov dword [ebp - 0x718], eax
mov dword [ebp - 0x714], edx
mov edx, dword [ebp - 0x710]
cmp edx, dword [ebp - 0x718]
jne 0x10038e90
mov eax, dword [ebp - 0x70c]
cmp eax, dword [ebp - 0x714]
jne 0x10038e90
mov ecx, dword [0x1009b168]
mov edx, dword [0x1009b16c]
mov dword [ebp - 0xa64], edx
xor ecx, 0x6cde7968
movzx eax, word [ebp - 0xc]
cdq
sub eax, ecx
mov word [ebp - 0xc], ax
mov ecx, dword [ebp - 0x24]
xor esi, esi
movzx eax, word [0x1009b158]
cdq
mov edi, dword [0x1009b16c]
sub eax, dword [0x1009b168]
sbb edx, edi
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x720], ecx
mov dword [ebp - 0x71c], esi
mov edx, dword [ebp - 0x720]
or edx, dword [ebp - 0x71c]
jne 0x10038c41
xor eax, eax
mov dword [ebp - 0x730], 1
mov dword [ebp - 0x72c], eax
jmp 0x10038c4c
xorps xmm0, xmm0
movlpd qword [ebp - 0x730], xmm0
movzx eax, word [ebp - 0xc]
cdq
and eax, dword [ebp - 0x2c]
and edx, dword [ebp - 0x28]
mov dword [ebp - 0x728], eax
mov dword [ebp - 0x724], edx
mov ecx, dword [ebp - 0x728]
or ecx, dword [ebp - 0x724]
jne 0x10038c85
xor edx, edx
mov dword [ebp - 0x3c4], 1
mov dword [ebp - 0x3c0], edx
jmp 0x10038c90
xorps xmm0, xmm0
movlpd qword [ebp - 0x3c4], xmm0
movsx eax, byte [0x1009b0ba]
cdq
mov ecx, dword [0x1009b130]
mov esi, dword [0x1009b134]
push esi
push ecx
push edx
push eax
call fcn.1006c090
push edx
push eax
mov edx, dword [ebp - 0x3c0]
push edx
mov eax, dword [ebp - 0x3c4]
push eax
call fcn.1006c090
add eax, dword [ebp - 0x730]
not eax
mov word [ebp - 0x14], ax
mov ecx, dword [0x1009bc7c]
xor edx, edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x34]
cdq
sub eax, 0xe5a38fe6
sbb edx, 0xeba70
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
mov eax, dword [0x1009b168]
mov ecx, dword [0x1009b16c]
mov dword [ebp - 0xa68], ecx
mov word [ebp - 0x10], ax
movsx eax, word [ebp - 0x10]
cdq
mov ecx, dword [0x1009b168]
mov esi, dword [0x1009b16c]
sub ecx, eax
sbb esi, edx
mov edx, dword [0x1009b168]
mov eax, dword [0x1009b16c]
or edx, ecx
or eax, esi
mov dword [0x1009b168], edx
mov dword [0x1009b16c], eax
movsx ecx, byte [0x1009b0bb]
add ecx, 0xe1e6
mov edx, dword [0x1009b140]
add edx, ecx
mov dword [0x1009b140], edx
movsx eax, word [0x1009b180]
cdq
mov ecx, dword [ebp - 0x50]
add ecx, 0x2fb9
mov esi, dword [ebp - 0x4c]
adc esi, 0
mov dword [ebp - 0x738], eax
mov dword [ebp - 0x734], edx
mov dword [ebp - 0x740], ecx
mov dword [ebp - 0x73c], esi
mov edx, dword [ebp - 0x738]
cmp edx, dword [ebp - 0x740]
jne 0x10038e90
mov eax, dword [ebp - 0x734]
cmp eax, dword [ebp - 0x73c]
jne 0x10038e90
movsx eax, byte [0x1009b0ba]
cdq
mov ecx, dword [0x1009b150]
mov edx, dword [0x1009b154]
mov dword [ebp - 0xa6c], edx
sub ecx, eax
not ecx
mov byte [ebp - 6], cl
movzx eax, word [ebp - 0x1c]
add eax, 0x9a
mov byte [0x1009b01f], al
mov byte [ebp - 1], 0xf3
jmp 0x10038aeb
mov dword [ebp - 0x188], 0xd
mov ax, word [0x1009bc7c]
mov word [ebp - 0xc], ax
movzx eax, byte [0x1009b0ee]
cdq
add eax, dword [ebp - 0x68]
adc edx, dword [ebp - 0x64]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
movsx ecx, word [0x1009b180]
sub ecx, 0xcdd3
mov edx, dword [ebp - 0x24]
imul edx, ecx
mov dword [ebp - 0x24], edx
movsx eax, byte [0x1009b0a7]
movsx ecx, byte [0x1009b0bb]
add eax, ecx
mov byte [0x1009b0a7], al
mov dl, byte [0x1009bc7c]
mov byte [0x1009b01f], dl
movsx eax, byte [ebp - 2]
test eax, eax
jne 0x10038f03
mov dword [ebp - 0x28c], 1
jmp 0x10038f0d
mov dword [ebp - 0x28c], 0
mov ecx, dword [ebp - 0x28c]
xor ecx, 0xd6152802
mov edx, dword [ebp - 0x20]
sub edx, ecx
movsx eax, byte [0x1009b0ba]
imul edx, eax
mov word [ebp - 0xc], dx
movzx eax, word [ebp - 0xc]
cdq
push 0xfa31c
push 0x43fd4a85
push edx
push eax
call fcn.1006c090
mov dword [0x1009b198], eax
mov dword [0x1009b19c], edx
movzx ecx, byte [0x1009b033]
sar ecx, 1
mov dword [0x1009b14c], ecx
mov edx, 1
imul eax, edx, 0x2f76
mov cl, byte [eax + 0x102088e8]
mov byte [ebp - 2], cl
mov edx, dword [ebp - 0x188]
add edx, 1
mov dword [ebp - 0x188], edx
cmp dword [ebp - 0x188], 0x267b
jl 0x10038ee3
mov eax, dword [0x1009bc7c]
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], 0x13bf
movzx eax, byte [0x1009b0ee]
cdq
and eax, 0xc5587433
and edx, 0x5ce62
mov dword [0x1009b138], eax
mov dword [0x1009b13c], edx
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, dword [0x1009b130]
mov esi, dword [0x1009b134]
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov dword [0x1009b130], eax
mov dword [0x1009b134], edx
movsx edx, byte [0x1009b0ba]
imul eax, edx, 0xce3e4545
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x18c], 0x122a
jle 0x10039097
mov cl, byte [0x1009b07f]
mov edx, 1
imul eax, edx, 0xe0c
mov byte [eax + 0x102088e8], cl
movsx ecx, byte [ebp - 5]
test ecx, ecx
jne 0x10039032
mov dword [ebp - 0x290], 1
jmp 0x1003903c
mov dword [ebp - 0x290], 0
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0xa78], edx
sub ecx, dword [ebp - 0x50]
movsx eax, byte [ebp - 2]
imul eax, dword [ebp - 0x290]
cdq
sub ecx, eax
movzx eax, word [ebp - 0x1c]
mov edx, dword [0x1009b144]
lea eax, [eax + edx + 0x20]
add ecx, eax
mov byte [0x1009b07e], cl
mov ecx, dword [0x1009bc7c]
mov dword [ebp - 0x30], ecx
movsx eax, byte [ebp - 2]
cdq
add eax, dword [ebp - 0x2c]
mov byte [ebp - 2], al
mov edx, dword [ebp - 0x18c]
sub edx, 1
mov dword [ebp - 0x18c], edx
jmp 0x10038ff7
mov eax, dword [ebp - 0x190]
add eax, 0x67
mov dword [ebp - 0x4e0], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
mov dword [0x1009b130], eax
mov dword [0x1009b134], ecx
mov edx, dword [0x1009b130]
mov eax, dword [0x1009b134]
mov dword [ebp - 0x748], edx
mov dword [ebp - 0x744], eax
cmp dword [ebp - 0x744], 0
jg 0x10039132
jl 0x100390e4
cmp dword [ebp - 0x748], 0
jae 0x10039132
imul ecx, dword [ebp - 0x20], 6
mov dword [ebp - 0x48], ecx
movzx edx, word [ebp - 0x14]
movzx eax, word [ebp - 0x14]
add edx, eax
mov word [ebp - 0x14], dx
movzx ecx, byte [0x1009b07f]
movsx edx, byte [0x1009b0a7]
sub ecx, edx
jne 0x10039119
mov eax, 1
mov word [ebp - 0xa0], ax
jmp 0x10039122
xor ecx, ecx
mov word [ebp - 0xa0], cx
mov dx, word [ebp - 0xa0]
mov word [ebp - 0x10], dx
jmp 0x100391c9
movzx eax, word [ebp - 0x14]
movzx ecx, byte [ebp - 3]
cmp eax, ecx
jle 0x100391c9
mov edx, dword [ebp - 0x2c]
or edx, dword [ebp - 0x28]
jne 0x1003915e
xor eax, eax
mov dword [ebp - 0x3cc], 1
mov dword [ebp - 0x3c8], eax
jmp 0x10039169
xorps xmm0, xmm0
movlpd qword [ebp - 0x3cc], xmm0
mov ecx, dword [0x1009b130]
mov edx, dword [0x1009b134]
push edx
push ecx
mov eax, dword [ebp - 0x3c8]
push eax
mov ecx, dword [ebp - 0x3cc]
push ecx
call fcn.1006c090
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x30]
cdq
mov edi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x38]
add edi, eax
adc ebx, edx
push ebx
push edi
push esi
push ecx
call fcn.1006c090
mov byte [0x1009b0ee], al
movzx dx, byte [0x1009b0ef]
mov word [ebp - 0xc], dx
movsx eax, byte [0x1009b0ba]
movzx ecx, byte [ebp - 3]
sub eax, ecx
not eax
mov word [ebp - 0x14], ax
mov edx, dword [ebp - 0x190]
add edx, 0xdf
mov dword [ebp - 0xa7c], edx
mov eax, dword [0x1009b198]
mov edx, dword [0x1009b19c]
mov cl, 3
call fcn.1006c1a0
mov dword [0x1009b178], eax
mov dword [0x1009b17c], edx
movzx eax, byte [ebp - 3]
cdq
mov ecx, eax
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xa80], eax
xor ecx, edx
movzx eax, byte [ebp - 3]
cdq
and eax, ecx
mov byte [ebp - 3], al
movzx ecx, word [ebp - 0x18]
imul edx, ecx, 0xb428
mov eax, dword [ebp - 0x48]
sub eax, edx
mov dword [ebp - 0x48], eax
mov ecx, dword [0x1009b188]
xor ecx, 0x5e6b
mov word [ebp - 0x1c], cx
movzx edx, word [ebp - 0x14]
add edx, 0xd3
mov dword [0x1009b188], edx
mov eax, dword [ebp - 0x190]
add eax, 0x2b
mov dword [ebp - 0xa84], eax
call dword [sym.imp.USER32.dll_GetCaretBlinkTime]
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x58]
or ecx, dword [ebp - 0x54]
je 0x10039323
cmp dword [ebp - 0x20], 0
je 0x1003928b
push 0x1007e5c8
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
xor edx, edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jmp 0x10039321
mov eax, dword [0x1009b140]
cdq
mov ecx, eax
mov esi, edx
movsx eax, word [ebp - 0x10]
cdq
mov edi, eax
mov ebx, edx
mov edx, dword [0x1009b168]
mov eax, dword [0x1009b16c]
not edx
not eax
add edi, edx
adc ebx, eax
movzx eax, word [ebp - 0x1c]
cdq
xor eax, dword [ebp - 0x2c]
xor edx, dword [ebp - 0x28]
xor edi, eax
xor ebx, edx
push ebx
push edi
push esi
push ecx
call fcn.1006c090
mov dword [ebp - 0x48], eax
movzx eax, byte [ebp - 4]
cdq
add eax, 0xed18a3ae
mov word [ebp - 0x1c], ax
push 0x91e91
push 0xb129386a
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp - 0x68]
push edx
call fcn.1006c090
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
push 0
push 0xde3785a0
push ecx
push eax
call fcn.1006c090
mov dword [0x1009b148], eax
mov edx, dword [ebp - 0x24]
xor edx, dword [0x1009b140]
mov eax, dword [ebp - 0x24]
and eax, edx
mov dword [ebp - 0x24], eax
jmp 0x10039398
movsx ecx, byte [ebp - 6]
test ecx, ecx
je 0x10039398
movsx edx, byte [ebp - 5]
add edx, dword [0x1009b148]
mov byte [ebp - 5], dl
mov eax, dword [ebp - 0x20]
cdq
mov ecx, eax
xor ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x20]
cdq
add eax, ecx
mov dword [ebp - 0x20], eax
movzx edx, byte [ebp - 3]
not edx
movsx eax, byte [ebp - 6]
xor edx, eax
movzx ecx, byte [0x1009b033]
imul edx, ecx
mov dword [0x1009b1b0], edx
movzx eax, word [0x1009b184]
cdq
mov ecx, dword [ebp - 0x28]
push ecx
mov ecx, dword [ebp - 0x2c]
push ecx
push edx
push eax
call fcn.1006c090
mov ecx, eax
mov esi, edx
movzx eax, word [0x1009b184]
cdq
push esi
push ecx
push edx
push eax
call fcn.1006c090
mov word [0x1009b184], ax
mov edx, dword [ebp - 0x4e0]
add edx, 0x4920
mov eax, 0x49ca
sub eax, edx
mov dword [ebp - 0x4ec], eax
movzx eax, byte [ebp - 3]
cdq
add eax, dword [0x1009b160]
adc edx, dword [0x1009b164]
push edx
push eax
mov ecx, dword [0x1009b164]
push ecx
mov edx, dword [0x1009b160]
push edx
call fcn.1006c090
mov dword [0x1009b160], eax
mov dword [0x1009b164], edx
mov eax, dword [ebp - 0x20]
sub eax, 0x9f
cdq
mov dword [0x1009b150], eax
mov dword [0x1009b154], edx
mov eax, dword [ebp - 0x48]
sub eax, 1
mov dword [ebp - 0x48], eax
mov ecx, dword [0x1009bc7c]
mov dword [ebp - 0x48], ecx
movsx edx, byte [0x1009b0bb]
sub edx, 0x2082f65
mov byte [0x1009b0ee], dl
lea eax, [ebp - 0x10f4]
push eax
mov ecx, dword [0x1034d0d8]
push ecx
call fcn.1003f7d0
test eax, eax
je 0x1003b0a7
cmp dword [ebp - 0x30], 0
je 0x100394f7
movsx edx, byte [ebp - 1]
test edx, edx
je 0x1003944d
jmp 0x100394f5
movzx eax, byte [0x1009b07e]
test eax, eax
je 0x100394f5
movzx ecx, byte [0x1009b0ef]
mov dword [ebp - 0x24], ecx
movzx eax, byte [ebp - 3]
movzx edx, byte [0x1009b07e]
sub eax, edx
cdq
mov ecx, eax
movzx eax, byte [0x1009b033]
cdq
sub eax, dword [ebp - 0x58]
sub ecx, eax
mov byte [0x1009b0bb], cl
push 0
push 0xc796
mov edx, dword [ebp - 0x64]
push edx
mov eax, dword [ebp - 0x68]
push eax
call fcn.1006c090
mov ecx, eax
mov esi, edx
mov eax, dword [0x1009b14c]
cdq
push esi
push ecx
push edx
push eax
call fcn.1006c090
mov dword [0x1009b14c], eax
mov edx, dword [0x1009b1a8]
mov eax, dword [0x1009b1ac]
mov ecx, dword [ebp - 0x38]
add edx, dword [ebp - 0x3c]
adc eax, ecx
mov dword [0x1009b1a8], edx
mov dword [0x1009b1ac], eax
mov edx, dword [0x1009b148]
not edx
mov byte [0x1009b0ba], dl
mov eax, 8
imul ecx, eax, 0x4ee
mov dl, byte [ecx + 0x101c0cd0]
mov byte [ebp - 5], dl
jmp 0x10039550
movzx eax, byte [0x1009b0a6]
test eax, eax
je 0x10039550
mov eax, dword [ebp - 0x30]
cdq
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
mov eax, dword [ebp - 0x28]
sbb eax, edx
add ecx, dword [ebp - 0x2c]
adc eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x24]
shl ecx, 1
mov byte [ebp - 1], cl
movsx eax, byte [0x1009b0ba]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x58]
movsx eax, byte [0x1009b0ba]
cdq
sub eax, ecx
mov byte [0x1009b0ba], al
movzx edx, word [ebp - 0x18]
xor edx, 0x4cc5
mov dword [0x1009b148], edx
xor eax, eax
mov dword [0x1009b198], 0xce
mov dword [0x1009b19c], eax
mov dword [ebp - 0x1b0], 0x175e
movzx eax, word [0x1009b184]
cdq
xor eax, 0xcb38076a
mov word [ebp - 0x1c], ax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0xa88], edx
add ecx, 0xb0ae1c06
mov dword [0x1009b170], ecx
mov eax, dword [ebp - 0x2c]
add eax, 0x53c5b5c0
mov dword [ebp - 0x48], eax
movzx ecx, word [ebp - 0xc]
mov edx, dword [0x1009b140]
add edx, ecx
mov dword [0x1009b140], edx
mov eax, dword [ebp - 0x48]
add eax, dword [0x1009b1a0]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x1b0], 0x166a
jle 0x10039ab1
mov ecx, dword [0x1009b130]
mov esi, dword [0x1009b134]
movsx eax, byte [ebp - 2]
cdq
mov dword [ebp - 0x750], ecx
mov dword [ebp - 0x74c], esi
mov dword [ebp - 0x758], eax
mov dword [ebp - 0x754], edx
mov edx, dword [ebp - 0x74c]
cmp edx, dword [ebp - 0x754]
jl 0x10039620
jg 0x10039614
mov eax, dword [ebp - 0x750]
cmp eax, dword [ebp - 0x758]
jbe 0x10039620
mov dword [ebp - 0x294], 1
jmp 0x1003962a
mov dword [ebp - 0x294], 0
mov ecx, dword [0x1009b130]
mov edx, dword [0x1009b134]
mov dword [ebp - 0x760], ecx
mov dword [ebp - 0x75c], edx
cmp dword [ebp - 0x75c], 0
jl 0x10039662
jg 0x10039656
cmp dword [ebp - 0x760], 0x30
jbe 0x10039662
mov dword [ebp - 0x298], 1
jmp 0x1003966c
mov dword [ebp - 0x298], 0
mov eax, dword [ebp - 0x294]
cmp eax, dword [ebp - 0x298]
jle 0x10039a9d
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov eax, dword [0x1009b168]
mov esi, dword [0x1009b16c]
mov dword [ebp - 0x768], ecx
mov dword [ebp - 0x764], edx
mov dword [ebp - 0x770], eax
mov dword [ebp - 0x76c], esi
mov ecx, dword [ebp - 0x768]
cmp ecx, dword [ebp - 0x770]
jne 0x100396c7
mov edx, dword [ebp - 0x764]
cmp edx, dword [ebp - 0x76c]
je 0x1003992b
mov eax, 1
mov word [ebp - 0x10], ax
movzx ecx, byte [0x1009b0ee]
imul ecx, dword [ebp - 0x34]
movzx edx, byte [0x1009b0ee]
imul edx, ecx
mov byte [0x1009b0ee], dl
movsx eax, word [0x1009b180]
test eax, eax
jne 0x10039702
mov dword [ebp - 0x29c], 1
jmp 0x1003970c
mov dword [ebp - 0x29c], 0
movsx ecx, byte [ebp - 6]
and ecx, dword [ebp - 0x29c]
mov word [0x1009b158], cx
cmp dword [ebp - 0x20], 0
jne 0x1003972f
mov dword [ebp - 0x2a0], 1
jmp 0x10039739
mov dword [ebp - 0x2a0], 0
mov edx, dword [0x1009b14c]
add edx, dword [ebp - 0x2a0]
sub edx, dword [0x1009b18c]
jne 0x10039761
xor eax, eax
mov dword [ebp - 0x3d4], 1
mov dword [ebp - 0x3d0], eax
jmp 0x1003976c
xorps xmm0, xmm0
movlpd qword [ebp - 0x3d4], xmm0
movsx eax, byte [ebp - 2]
cdq
mov ecx, dword [0x1009b1a8]
mov esi, dword [0x1009b1ac]
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0x2c]
not edx
mov eax, dword [ebp - 0x28]
not eax
add ecx, edx
adc esi, eax
mov edx, dword [ebp - 0x3d0]
push edx
mov eax, dword [ebp - 0x3d4]
push eax
push esi
push ecx
call fcn.1006c090
mov dword [0x1009b140], eax
movzx ecx, word [ebp - 0xc]
and ecx, 0xa1
mov dword [ebp - 0x20], ecx
movsx edx, word [ebp - 0x10]
mov dword [ebp - 0x2a4], edx
cmp dword [ebp - 0x2a4], 0
je 0x100397db
cmp dword [ebp - 0x2a4], 1
je 0x100398b0
jmp 0x10039926
mov al, byte [0x1009bc7c]
mov byte [ebp - 4], al
mov ecx, dword [0x1009b1a0]
xor edx, edx
mov eax, dword [0x1009b168]
mov esi, dword [0x1009b16c]
push esi
push eax
push edx
push ecx
call fcn.1006c090
mov dword [0x1009b1a0], eax
cmp dword [ebp - 0x30], 0
jne 0x10039816
mov dword [ebp - 0x2a8], 1
jmp 0x10039820
mov dword [ebp - 0x2a8], 0
movzx eax, byte [0x1009b07e]
movzx ecx, byte [0x1009b0a6]
or ecx, dword [ebp - 0x2a8]
add eax, ecx
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x68]
sub edx, 0xc251
mov byte [ebp - 1], dl
cmp dword [0x1009b170], 0
jne 0x1003985e
mov dword [ebp - 0x2ac], 1
jmp 0x10039868
mov dword [ebp - 0x2ac], 0
movzx eax, byte [ebp - 3]
movzx ecx, word [ebp - 0x18]
not ecx
mov edx, 0xafa4
sub edx, ecx
imul eax, edx
not eax
cdq
mov ecx, dword [0x1009b1b0]
imul ecx, dword [ebp - 0x2ac]
xor esi, esi
sub ecx, 0xcf7c23e2
sbb esi, 0xfa57f
push esi
push ecx
push edx
push eax
call fcn.1006c090
mov dword [0x1009b168], eax
mov dword [0x1009b16c], edx
jmp 0x10039926
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xa8c], eax
mov ecx, 2
imul eax, ecx, 0x1a
mov word [eax + 0x10223758], dx
movsx eax, byte [0x1009b0a7]
cdq
mov ecx, eax
xor ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
cdq
mov edx, dword [0x1009b1a8]
mov esi, dword [0x1009b1ac]
mov dword [ebp - 0xa90], esi
sub eax, edx
add ecx, eax
movsx eax, byte [ebp - 1]
mov edx, dword [ebp - 0x34]
sub edx, dword [0x1009b170]
sub eax, edx
sub ecx, eax
mov byte [0x1009b0bb], cl
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0xa94], edx
add ecx, 0xb8f0ed24
movzx eax, word [ebp - 0x14]
cdq
add eax, ecx
mov word [ebp - 0x14], ax
jmp 0x10039a9d
movzx eax, word [ebp - 0xc]
test eax, eax
jne 0x10039947
xor ecx, ecx
mov dword [ebp - 0x3dc], 1
mov dword [ebp - 0x3d8], ecx
jmp 0x10039952
xorps xmm0, xmm0
movlpd qword [ebp - 0x3dc], xmm0
mov edx, dword [ebp - 0x3dc]
cmp edx, dword [0x1009b138]
jne 0x1003996e
mov eax, dword [ebp - 0x3d8]
cmp eax, dword [0x1009b13c]
je 0x1003997a
mov dword [ebp - 0x2b0], 1
jmp 0x10039984
mov dword [ebp - 0x2b0], 0
mov ecx, dword [0x1009b1b0]
cmp ecx, dword [ebp - 0x2b0]
ja 0x10039a9d
mov eax, dword [0x1009b14c]
cdq
sub eax, 0xda23433b
mov dword [0x1009b144], eax
movzx edx, byte [0x1009b0ef]
test edx, edx
jne 0x100399c5
xor eax, eax
mov dword [ebp - 0x3e4], 1
mov dword [ebp - 0x3e0], eax
jmp 0x100399d0
xorps xmm0, xmm0
movlpd qword [ebp - 0x3e4], xmm0
mov ecx, dword [0x1009b198]
mov edx, dword [0x1009b19c]
mov dword [ebp - 0x778], ecx
mov dword [ebp - 0x774], edx
mov eax, dword [ebp - 0x778]
or eax, dword [ebp - 0x774]
jne 0x10039a0a
xor ecx, ecx
mov dword [ebp - 0x3ec], 1
mov dword [ebp - 0x3e8], ecx
jmp 0x10039a15
xorps xmm0, xmm0
movlpd qword [ebp - 0x3ec], xmm0
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov ecx, dword [0x1009b154]
add edx, dword [0x1009b150]
adc eax, ecx
add edx, dword [ebp - 0x3e4]
adc eax, dword [ebp - 0x3e0]
mov ecx, dword [ebp - 0x3ec]
add ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x3e8]
adc esi, dword [ebp - 0x4c]
mov edi, dword [0x1009b148]
sub edi, 0x1e1d496f
xor ebx, ebx
xor ecx, edi
xor esi, ebx
xor edx, ecx
xor eax, esi
not edx
not eax
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x64], eax
movzx edx, word [0x1009b184]
imul eax, edx, 0xa0
mov word [ebp - 0x1c], ax
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x80ae
mov edx, dword [ebp - 0x28]
sbb edx, 0
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], edx
mov eax, dword [0x1009b1a0]
shr eax, 7
xor ecx, ecx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x1b0]
sub edx, 1
mov dword [ebp - 0x1b0], edx
jmp 0x100395bd
movsx eax, byte [ebp - 1]
add eax, 0x6aae135e
cmp dword [0x1009b148], eax
jne 0x10039db5
movzx ecx, byte [0x1009b033]
movzx edx, byte [ebp - 4]
add ecx, edx
cmp ecx, 1
jne 0x10039db5
movsx eax, byte [ebp - 2]
cmp dword [0x1009b190], eax
ja 0x10039d01
movzx eax, byte [0x1009b033]
cdq
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x780], eax
mov dword [ebp - 0x77c], edx
mov dword [ebp - 0x788], ecx
mov dword [ebp - 0x784], esi
mov edx, dword [ebp - 0x77c]
cmp edx, dword [ebp - 0x784]
jl 0x10039b43
jg 0x10039b30
mov eax, dword [ebp - 0x780]
cmp eax, dword [ebp - 0x788]
jb 0x10039b43
movzx ecx, byte [0x1009b0ee]
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x10039cff
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x790], edx
mov dword [ebp - 0x78c], eax
mov ecx, dword [ebp - 0x78c]
cmp ecx, dword [0x1009b13c]
ja 0x10039b87
jb 0x10039b73
mov edx, dword [ebp - 0x790]
cmp edx, dword [0x1009b138]
ja 0x10039b87
xor eax, eax
mov dword [ebp - 0x3f4], 1
mov dword [ebp - 0x3f0], eax
jmp 0x10039b92
xorps xmm0, xmm0
movlpd qword [ebp - 0x3f4], xmm0
xor ecx, ecx
mov edx, dword [0x1009b168]
mov eax, dword [0x1009b16c]
xor edx, dword [ebp - 0x24]
xor eax, ecx
mov dword [ebp - 0x798], edx
mov dword [ebp - 0x794], eax
mov ecx, dword [ebp - 0x798]
cmp ecx, dword [ebp - 0x3f4]
jne 0x10039bcc
mov edx, dword [ebp - 0x794]
cmp edx, dword [ebp - 0x3f0]
je 0x10039c06
movzx eax, byte [0x1009b0ee]
imul ecx, eax, 0xc5450f51
mov edx, dword [0x1009b14c]
sub edx, ecx
mov dword [0x1009b14c], edx
mov eax, dword [0x1009b1b0]
sub eax, dword [0x1009b148]
mov ecx, dword [0x1009b1b0]
imul ecx, eax
mov dword [0x1009b1b0], ecx
jmp 0x10039cff
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov ecx, dword [0x1009b150]
mov esi, dword [0x1009b154]
mov dword [ebp - 0x7a0], edx
mov dword [ebp - 0x79c], eax
mov dword [ebp - 0x7a8], ecx
mov dword [ebp - 0x7a4], esi
mov edx, dword [ebp - 0x79c]
cmp edx, dword [ebp - 0x7a4]
jb 0x10039c7e
ja 0x10039c4e
mov eax, dword [ebp - 0x7a0]
cmp eax, dword [ebp - 0x7a8]
jbe 0x10039c7e
movsx eax, byte [0x1009b0ba]
movsx ecx, byte [ebp - 6]
and eax, ecx
not eax
cdq
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0xa98], ecx
not edx
add edx, 0x3f5b
sub eax, edx
mov dword [0x1009b18c], eax
jmp 0x10039cff
movzx edx, byte [ebp - 4]
movzx eax, word [ebp - 0x18]
cmp edx, eax
jle 0x10039cff
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0xab4], edx
add ecx, 6
mov dword [ebp - 0x48], ecx
mov eax, dword [0x1009b1a8]
mov ecx, dword [0x1009b1ac]
mov dword [ebp - 0x7b0], eax
mov dword [ebp - 0x7ac], ecx
mov edx, dword [ebp - 0x7b0]
or edx, dword [ebp - 0x7ac]
jne 0x10039cd5
xor eax, eax
mov dword [ebp - 0x3fc], 1
mov dword [ebp - 0x3f8], eax
jmp 0x10039ce0
xorps xmm0, xmm0
movlpd qword [ebp - 0x3fc], xmm0
mov ecx, dword [ebp - 0x3fc]
mov edx, dword [ebp - 0x3f8]
mov dword [0x1009b168], ecx
mov dword [0x1009b16c], edx
mov byte [0x1009b0a7], 0xc7
jmp 0x10039d34
cmp dword [0x1009b148], 0
je 0x10039d34
mov eax, 8
imul ecx, eax, 0x3695
mov dl, byte [ecx + 0x10317600]
mov byte [ebp - 4], dl
mov eax, dword [0x1009b188]
sub eax, 0x3d97
mov dword [ebp - 0x24], eax
mov ecx, 0x6037
mov word [ebp - 0x1c], cx
jmp 0x10039550
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
movzx eax, byte [0x1009b01f]
cdq
mov dword [ebp - 0x7b8], ecx
mov dword [ebp - 0x7b4], esi
mov dword [ebp - 0x7c0], eax
mov dword [ebp - 0x7bc], edx
mov edx, dword [ebp - 0x7b4]
cmp edx, dword [ebp - 0x7bc]
jg 0x10039e05
jl 0x10039df9
mov eax, dword [ebp - 0x7b8]
cmp eax, dword [ebp - 0x7c0]
jae 0x10039e05
mov dword [ebp - 0x2b4], 1
jmp 0x10039e0f
mov dword [ebp - 0x2b4], 0
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x7c8], ecx
mov dword [ebp - 0x7c4], edx
cmp dword [ebp - 0x7c4], 0
jg 0x10039e41
jl 0x10039e35
cmp dword [ebp - 0x7c8], 0x28
jae 0x10039e41
mov dword [ebp - 0x2b8], 1
jmp 0x10039e4b
mov dword [ebp - 0x2b8], 0
mov eax, dword [ebp - 0x2b4]
cmp eax, dword [ebp - 0x2b8]
jle 0x10039f0e
movsx ecx, word [0x1009b180]
cmp dword [0x1009b188], ecx
jne 0x10039e78
mov dword [ebp - 0x2bc], 1
jmp 0x10039e82
mov dword [ebp - 0x2bc], 0
cmp dword [0x1009b188], 0x25
jne 0x10039e97
mov dword [ebp - 0x2c0], 1
jmp 0x10039ea1
mov dword [ebp - 0x2c0], 0
mov edx, dword [ebp - 0x2bc]
cmp edx, dword [ebp - 0x2c0]
jle 0x10039f0e
mov ax, word [0x1009bc7c]
mov word [0x1009b158], ax
movsx eax, byte [ebp - 5]
cdq
mov ecx, eax
mov esi, edx
add ecx, dword [ebp - 0x58]
adc esi, dword [ebp - 0x54]
movsx eax, byte [ebp - 5]
cdq
push esi
push ecx
push edx
push eax
call fcn.1006c090
mov byte [ebp - 5], al
mov edx, dword [0x1009b190]
add edx, 0xd4ed
movzx eax, byte [0x1009b0ef]
sub eax, edx
mov byte [0x1009b0ef], al
mov eax, dword [ebp - 0x30]
cdq
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov edx, dword [0x1009bc7c]
mov dword [ebp - 0x1a8], edx
cmp dword [0x1009b144], 0
je 0x10039f5c
movzx eax, word [0x1009b184]
mov ecx, dword [ebp - 0x24]
xor ecx, eax
mov edx, dword [ebp - 0x24]
add edx, ecx
mov dword [ebp - 0x24], edx
movzx eax, word [0x1009b158]
and eax, dword [ebp - 0x34]
movzx ecx, word [0x1009b158]
sub ecx, eax
mov word [0x1009b158], cx
mov dx, word [0x1009bc7c]
mov word [ebp - 0xc], dx
mov eax, dword [ebp - 0x1a8]
add eax, 0x2f8
mov dword [ebp - 0x4f0], eax
mov ecx, dword [ebp - 0x50]
xor ecx, 0xe0
mov byte [ebp - 2], cl
mov dword [0x1009b1b0], 0x56
cmp dword [0x1009b148], 0
je 0x10039fa0
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x404], edx
mov dword [ebp - 0x400], eax
jmp 0x10039fb1
mov ecx, dword [ebp - 0x24]
xor edx, edx
mov dword [ebp - 0x404], ecx
mov dword [ebp - 0x400], edx
mov eax, dword [ebp - 0x404]
mov dword [0x1009b188], eax
movzx eax, byte [0x1009b07e]
add eax, 0x4519a21c
cdq
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
mov eax, dword [ebp - 0x28]
sbb eax, edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x7d0], ecx
mov dword [ebp - 0x7cc], edx
mov eax, dword [ebp - 0x7d0]
or eax, dword [ebp - 0x7cc]
je 0x1003a001
mov cl, byte [ebp - 3]
mov byte [ebp - 0x6b], cl
jmp 0x1003a00a
mov dl, byte [0x1009b033]
mov byte [ebp - 0x6b], dl
movzx eax, byte [ebp - 0x6b]
mov dword [0x1009b1b0], eax
mov ecx, dword [ebp - 0x1a8]
add ecx, 0x359
mov dword [ebp - 0x4e8], ecx
mov edx, dword [0x1009b1a8]
mov eax, dword [0x1009b1ac]
mov dword [ebp - 0x7d8], edx
mov dword [ebp - 0x7d4], eax
mov ecx, dword [0x1009b164]
cmp ecx, dword [ebp - 0x7d4]
jb 0x1003a066
ja 0x1003a05a
mov edx, dword [0x1009b160]
cmp edx, dword [ebp - 0x7d8]
jbe 0x1003a066
mov dword [ebp - 0x2c4], 1
jmp 0x1003a070
mov dword [ebp - 0x2c4], 0
cmp dword [0x1009b164], 0
ja 0x1003a082
cmp dword [0x1009b160], 0x33
jbe 0x1003a08e
mov dword [ebp - 0x2c8], 1
jmp 0x1003a098
mov dword [ebp - 0x2c8], 0
mov eax, dword [ebp - 0x2c4]
cmp eax, dword [ebp - 0x2c8]
jle 0x1003a0e3
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x1ac], eax
cmp dword [ebp - 0x1ac], 0
je 0x1003a0e1
mov ecx, dword [ebp - 0x1ac]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
mov dword [ebp - 0xab8], eax
mov edx, dword [ebp - 0x1ac]
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov dword [ebp - 0xabc], eax
jmp 0x1003a130
movzx eax, byte [ebp - 4]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
xor edx, ecx
xor eax, esi
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], eax
movzx ecx, word [ebp - 0x18]
add ecx, 0x82fe
mov word [ebp - 0xc], cx
movzx edx, byte [0x1009b07f]
mov eax, dword [ebp - 0x48]
sub eax, edx
mov ecx, dword [ebp - 0x48]
sub ecx, eax
mov dword [ebp - 0x48], ecx
mov edx, 0xffffab1d
mov word [0x1009b180], dx
mov eax, dword [ebp - 0x1a8]
add eax, 0xd8
mov dword [ebp - 0x4e4], eax
mov ecx, 0x119a
mov word [0x1009b158], cx
mov edx, dword [ebp - 0x24]
xor eax, eax
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x7e0], edx
mov dword [ebp - 0x7dc], eax
mov dword [ebp - 0x7e8], ecx
mov dword [ebp - 0x7e4], esi
mov edx, dword [ebp - 0x7dc]
cmp edx, dword [ebp - 0x7e4]
jg 0x1003a19a
jl 0x1003a18e
mov eax, dword [ebp - 0x7e0]
cmp eax, dword [ebp - 0x7e8]
ja 0x1003a19a
mov dword [ebp - 0x2cc], 1
jmp 0x1003a1a4
mov dword [ebp - 0x2cc], 0
cmp dword [ebp - 0x24], 0x32
ja 0x1003a1b6
mov dword [ebp - 0x2d0], 1
jmp 0x1003a1c0
mov dword [ebp - 0x2d0], 0
mov ecx, dword [ebp - 0x2cc]
cmp ecx, dword [ebp - 0x2d0]
jne 0x1003a4d5
movzx edx, byte [ebp - 3]
movzx eax, byte [0x1009b033]
cmp edx, eax
jge 0x1003a1ed
mov edx, dword [0x1009b130]
mov eax, dword [0x1009b134]
mov ecx, dword [0x1009b148]
xor esi, esi
mov dword [ebp - 0x800], edx
mov dword [ebp - 0x7fc], eax
mov dword [ebp - 0x808], ecx
mov dword [ebp - 0x804], esi
mov edx, dword [ebp - 0x7fc]
cmp edx, dword [ebp - 0x804]
jl 0x1003a625
movzx edx, word [ebp - 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [0x1009b18c], eax
cmp dword [0x1009b18c], 0
je 0x1003b16f
mov eax, dword [0x1009b1a8]
mov ecx, dword [0x1009b1ac]
add eax, 1
adc ecx, 0
mov dword [0x1009b1a8], eax
mov dword [0x1009b1ac], ecx
mov edx, dword [0x1009b130]
mov eax, dword [0x1009b134]
mov dword [ebp - 0x964], eax
add edx, 0x8f
mov dword [0x1009b190], edx
movzx eax, word [ebp - 0x18]
cdq
and eax, dword [ebp - 0x50]
and edx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
movsx ecx, byte [0x1009b0a7]
test ecx, ecx
jne 0x1003b125
mov dword [ebp - 0x2fc], 1
jmp 0x1003b12f
mov dword [ebp - 0x2fc], 0
mov edx, dword [0x1009b1a0]
sub edx, dword [ebp - 0x2fc]
mov dword [0x1009b18c], edx
movsx eax, byte [ebp - 1]
add eax, 0x8cd3
imul eax, dword [0x1009b1a0]
mov dword [0x1009b1a0], eax
movsx ecx, byte [ebp - 5]
movsx edx, byte [ebp - 1]
add ecx, edx
movsx eax, byte [ebp - 5]
imul eax, ecx
mov byte [ebp - 5], al
jmp 0x1003b277
movzx eax, word [0x1009b158]
cdq
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x860], ecx
mov dword [ebp - 0x85c], esi
mov edx, dword [ebp - 0x860]
or edx, dword [ebp - 0x85c]
je 0x1003b277
movsx eax, byte [0x1009b0bb]
movzx ecx, byte [0x1009b033]
imul eax, ecx
mov byte [0x1009b0bb], al
mov edx, dword [0x1009b198]
mov eax, dword [0x1009b19c]
push 0x835d7
push 0x3530af13
push eax
push edx
call fcn.1006c090
mov ecx, eax
movzx eax, byte [0x1009b07e]
cdq
add eax, ecx
mov byte [0x1009b07e], al
mov edx, dword [ebp - 0x20]
xor edx, 0x8eb1
movsx eax, byte [0x1009b0a7]
add eax, edx
mov byte [0x1009b0a7], al
cmp dword [ebp - 0x20], 0
jne 0x1003b213
xor ecx, ecx
mov dword [ebp - 0x868], 1
mov dword [ebp - 0x864], ecx
jmp 0x1003b21e
xorps xmm0, xmm0
movlpd qword [ebp - 0x868], xmm0
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x968], eax
add edx, dword [ebp - 0x868]
mov byte [0x1009b0ba], dl
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x870], ecx
mov dword [ebp - 0x86c], edx
mov eax, dword [ebp - 0x870]
or eax, dword [ebp - 0x86c]
je 0x1003b262
movsx ecx, byte [ebp - 6]
mov dword [ebp - 0x300], ecx
jmp 0x1003b26c
movzx edx, word [ebp - 0x18]
mov dword [ebp - 0x300], edx
mov al, byte [ebp - 0x300]
mov byte [0x1009b0bb], al
movsx eax, byte [ebp - 6]
shl eax, 1
cdq
mov dword [0x1009b160], eax
mov dword [0x1009b164], edx
movzx eax, word [ebp - 0xc]
cdq
sub eax, 0xdbdbf89d
sbb edx, 0x267a
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
movzx ecx, byte [ebp - 3]
movsx edx, byte [0x1009b0a7]
add ecx, edx
movzx eax, byte [ebp - 3]
sub eax, ecx
mov byte [ebp - 3], al
mov ecx, dword [0x1009bc7c]
mov dword [ebp - 0x150], ecx
call dword [sym.imp.USER32.dll_GetDialogBaseUnits]
xor edx, edx
mov dword [0x1009b138], eax
mov dword [0x1009b13c], edx
mov eax, dword [0x1009b138]
or eax, dword [0x1009b13c]
je 0x1003b3b7
mov ecx, dword [0x1009b130]
mov edx, dword [0x1009b134]
mov dword [ebp - 0x878], ecx
mov dword [ebp - 0x874], edx
mov eax, dword [ebp - 0x878]
or eax, dword [ebp - 0x874]
je 0x1003b356
movsx eax, byte [ebp - 2]
cdq
push 0x8c326
push 0x947a1b19
push edx
push eax
call fcn.1006c090
mov dword [ebp - 0x48], eax
mov ecx, dword [0x1009b178]
add ecx, 0x7b
mov dword [0x1009b14c], ecx
mov edx, 1
imul eax, edx, 0x85
movzx ecx, byte [eax + 0x101c0aa8]
movzx edx, byte [0x1009b0a6]
sub edx, ecx
mov byte [0x1009b0a6], dl
jmp 0x1003b3b2
movzx eax, byte [0x1009b0ee]
sub eax, 0x495968fc
mov word [ebp - 0x14], ax
mov ecx, dword [0x1009b148]
and ecx, dword [0x1009b14c]
mov edx, dword [0x1009b148]
sub edx, ecx
mov dword [0x1009b148], edx
mov eax, dword [0x1009b14c]
cdq
sub eax, 0x72c33efb
sbb edx, 0xbe6ac
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x50]
not ecx
mov eax, dword [0x1009b14c]
cdq
add ecx, eax
mov eax, dword [0x1009b188]
cdq
sub ecx, eax
mov dword [0x1009b148], ecx
jmp 0x1003b481
movzx edx, byte [ebp - 3]
test edx, edx
jne 0x1003b3cb
mov dword [ebp - 0x304], 1
jmp 0x1003b3d5
mov dword [ebp - 0x304], 0
movzx eax, word [ebp - 0x18]
mov ecx, dword [ebp - 0x304]
sub ecx, eax
mov edx, dword [0x1009b148]
xor edx, 0x501e
and ecx, edx
jne 0x1003b3ff
mov eax, 1
mov word [ebp - 0xa2], ax
jmp 0x1003b408
xor ecx, ecx
mov word [ebp - 0xa2], cx
mov dx, word [ebp - 0xa2]
mov word [ebp - 0xc], dx
movzx eax, word [ebp - 0x1c]
add eax, 0x89
mov dword [0x1009b14c], eax
movzx eax, byte [ebp - 3]
cdq
mov ecx, dword [0x1009b150]
mov esi, dword [0x1009b154]
add ecx, eax
adc esi, edx
mov dword [0x1009b150], ecx
mov dword [0x1009b154], esi
movsx edx, word [0x1009b180]
movzx eax, byte [0x1009b0ee]
sub edx, eax
movsx ecx, word [0x1009b180]
sub ecx, edx
mov word [0x1009b180], cx
mov eax, dword [ebp - 0x48]
sub eax, 0x4bf2546c
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x20]
cdq
add eax, dword [ebp - 0x2c]
adc edx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x150]
add edx, 0x1b1
mov dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x150]
add eax, 0x3bb
mov dword [ebp - 0x96c], eax
mov ecx, dword [0x1009b1a8]
mov edx, dword [0x1009b1ac]
mov eax, dword [0x1009b168]
mov esi, dword [0x1009b16c]
mov dword [ebp - 0x880], ecx
mov dword [ebp - 0x87c], edx
mov dword [ebp - 0x888], eax
mov dword [ebp - 0x884], esi
mov ecx, dword [ebp - 0x87c]
cmp ecx, dword [ebp - 0x884]
jg 0x1003b581
jl 0x1003b4f9
mov edx, dword [ebp - 0x880]
cmp edx, dword [ebp - 0x888]
jae 0x1003b581
movsx eax, byte [0x1009b0a7]
sub eax, 0x49
mov word [ebp - 0x10], ax
mov ecx, dword [0x1009b1a8]
mov edx, dword [0x1009b1ac]
mov dword [ebp - 0x970], edx
add ecx, 0x5d
mov eax, dword [0x1009b1a0]
sub eax, ecx
mov dword [0x1009b1a0], eax
movzx ecx, byte [0x1009b0ee]
imul ecx, dword [ebp - 0x34]
mov byte [0x1009b0ee], cl
movzx edx, byte [0x1009b033]
mov eax, dword [ebp - 0x30]
imul eax, edx
not eax
cdq
mov ebx, eax
movzx eax, word [ebp - 0xc]
cdq
push edx
push eax
mov eax, dword [0x1009b13c]
push eax
mov ecx, dword [0x1009b138]
push ecx
call fcn.1006c090
sub ebx, eax
mov byte [0x1009b01f], bl
movzx eax, byte [0x1009b033]
cdq
add eax, dword [0x1009b138]
mov byte [0x1009b033], al
jmp 0x1003b5be
mov edx, dword [0x1009b1a8]
mov eax, dword [0x1009b1ac]
mov dword [ebp - 0x974], eax
add edx, 0xa5
mov byte [ebp - 6], dl
mov cl, byte [0x1009bc7c]
mov byte [ebp - 1], cl
movsx eax, byte [ebp - 2]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x150]
add edx, 0x1ad
mov dword [ebp - 0x10c], edx
cmp dword [ebp - 0x48], 0xd5
jle 0x1003b711
movzx eax, byte [ebp - 3]
test eax, eax
je 0x1003b602
mov ecx, 0xffff3372
test ecx, ecx
je 0x1003b602
xor edx, edx
mov dword [ebp - 0x424], 1
mov dword [ebp - 0x420], edx
jmp 0x1003b60d
xorps xmm0, xmm0
movlpd qword [ebp - 0x424], xmm0
mov eax, dword [ebp - 0x424]
add eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x420]
adc ecx, dword [ebp - 0x64]
mov dword [ebp - 0x890], eax
mov dword [ebp - 0x88c], ecx
mov edx, dword [ebp - 0x890]
or edx, dword [ebp - 0x88c]
je 0x1003b6c3
mov ecx, dword [0x1009b168]
mov eax, dword [0x1009b16c]
mov dword [ebp - 0x978], eax
and ecx, 0xfb38f7c6
mov dx, word [ebp - 0x14]
shl dx, cl
mov word [ebp - 0x14], dx
mov eax, dword [0x1009b170]
xor ecx, ecx
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
push ecx
push eax
push esi
push edx
call fcn.1006c090
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], esi
movzx eax, word [ebp - 0x1c]
add eax, 0x5c2f
cdq
mov dword [0x1009b178], eax
mov dword [0x1009b17c], edx
movzx edx, byte [0x1009b01f]
movsx eax, byte [ebp - 5]
add edx, eax
movzx ecx, byte [0x1009b01f]
add ecx, edx
mov byte [0x1009b01f], cl
mov byte [0x1009b07e], 0xe0
mov byte [ebp - 1], 0xb0
jmp 0x1003b70c
mov dx, word [ebp - 0x18]
sub dx, 1
mov word [ebp - 0x18], dx
movsx eax, byte [0x1009b0ba]
cdq
sub eax, 0xe8058bb4
sbb edx, 0x175f
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x34]
cdq
mov ecx, dword [0x1009b13c]
push ecx
mov ecx, dword [0x1009b138]
push ecx
push edx
push eax
call fcn.1006c090
mov ecx, eax
mov eax, dword [ebp - 0x34]
cdq
sub eax, ecx
mov dword [ebp - 0x34], eax
jmp 0x1003b9d5
mov edx, dword [ebp - 0x58]
or edx, dword [ebp - 0x54]
je 0x1003b85b
mov eax, dword [0x1009b130]
mov ecx, dword [0x1009b134]
mov dword [ebp - 0x97c], ecx
sub eax, 0x98d5
mov dword [0x1009b1a0], eax
movsx edx, word [0x1009b180]
imul eax, edx, 0xeb
cdq
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x14]
cdq
mov edi, dword [0x1009b1ac]
add eax, dword [0x1009b1a8]
adc edx, edi
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x58]
or edx, dword [ebp - 0x54]
jne 0x1003b785
xor eax, eax
mov dword [ebp - 0x42c], 1
mov dword [ebp - 0x428], eax
jmp 0x1003b790
xorps xmm0, xmm0
movlpd qword [ebp - 0x42c], xmm0
cmp dword [0x1009b190], 0
jne 0x1003b7a5
mov dword [ebp - 0x308], 1
jmp 0x1003b7af
mov dword [ebp - 0x308], 0
mov ecx, dword [0x1009b168]
mov edx, dword [0x1009b16c]
push edx
push ecx
mov eax, dword [ebp - 0x428]
push eax
mov ecx, dword [ebp - 0x42c]
push ecx
call fcn.1006c090
mov ecx, eax
mov esi, edx
movzx edx, byte [ebp - 4]
mov eax, dword [ebp - 0x308]
sub eax, edx
cdq
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov dword [ebp - 0x898], eax
mov dword [ebp - 0x894], edx
mov eax, dword [ebp - 0x898]
or eax, dword [ebp - 0x894]
jne 0x1003b818
xor ecx, ecx
mov dword [ebp - 0x8a0], 1
mov dword [ebp - 0x89c], ecx
jmp 0x1003b823
xorps xmm0, xmm0
movlpd qword [ebp - 0x8a0], xmm0
mov edx, dword [0x1009b1a8]
mov eax, dword [0x1009b1ac]
mov dword [ebp - 0x980], eax
xor edx, dword [ebp - 0x8a0]
mov dword [0x1009b144], edx
movsx eax, byte [ebp - 5]
cdq
sub eax, 0x8fd1f0c4
sbb edx, 0xd8ec7
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
jmp 0x1003b9d5
movzx ecx, byte [0x1009b0ee]
test ecx, ecx
je 0x1003b8ee
imul edx, dword [ebp - 0x48], 0xa70b
mov byte [0x1009b0bb], dl
mov eax, dword [ebp - 0x58]
or eax, dword [ebp - 0x54]
je 0x1003b895
mov ecx, dword [0x1009b144]
xor edx, edx
mov dword [ebp - 0x434], ecx
mov dword [ebp - 0x430], edx
jmp 0x1003b8ac
mov eax, dword [0x1009b150]
mov ecx, dword [0x1009b154]
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x430], ecx
mov dl, byte [ebp - 0x434]
mov byte [0x1009b0a6], dl
movsx eax, word [ebp - 0x10]
add eax, 0x5119
mov dword [ebp - 0x24], eax
mov ecx, dword [0x1009b130]
mov edx, dword [0x1009b134]
push 0
push 0x53
push edx
push ecx
call fcn.1006c090
mov byte [ebp - 4], al
movsx eax, byte [ebp - 2]
xor eax, 0x55
mov word [ebp - 0x14], ax
jmp 0x1003b9d5
xor ecx, ecx
je 0x1003b9d5
movzx edx, byte [ebp - 4]
test edx, edx
je 0x1003b911
movzx eax, word [ebp - 0xc]
cdq
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x438], edx
jmp 0x1003b928
mov eax, dword [0x1009b178]
mov ecx, dword [0x1009b17c]
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x438], ecx
mov dx, word [ebp - 0x43c]
mov word [ebp - 0x1c], dx
mov eax, dword [0x1009b1a8]
mov ecx, dword [0x1009b1ac]
mov dword [ebp - 0x984], ecx
add eax, 0x230c
mov byte [ebp - 2], al
mov dl, byte [0x1009bc7c]
mov byte [0x1009b033], dl
mov eax, dword [0x1009b148]
sub eax, 0x51ea
xor ecx, ecx
mov dword [0x1009b168], eax
mov dword [0x1009b16c], ecx
mov dl, byte [0x1009b07f]
mov byte [ebp - 4], dl
movsx eax, byte [0x1009b0bb]
test eax, eax
jne 0x1003b997
xor ecx, ecx
mov dword [ebp - 0x444], 1
mov dword [ebp - 0x440], ecx
jmp 0x1003b9a2
xorps xmm0, xmm0
movlpd qword [ebp - 0x444], xmm0
mov ecx, dword [0x1009b150]
mov esi, dword [0x1009b154]
sub ecx, dword [ebp - 0x444]
sbb esi, dword [ebp - 0x440]
movzx eax, byte [ebp - 4]
cdq
mov edi, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x60]
sbb edx, edi
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov byte [0x1009b033], al
mov edx, dword [ebp - 0x14c]
or edx, dword [ebp - 0x10c]
imul edx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x14c]
or eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x10c]
imul ecx, dword [ebp - 0x10c]
sub eax, ecx
cmp edx, eax
je 0x1003c07d
mov edx, 4
mov word [ebp - 0x1c], dx
movzx eax, byte [0x1009b0ef]
cdq
push edx
push eax
mov eax, dword [0x1009b13c]
push eax
mov ecx, dword [0x1009b138]
push ecx
call fcn.1006c090
mov ecx, dword [0x1009b138]
sub ecx, eax
mov eax, dword [0x1009b13c]
sbb eax, edx
mov dword [0x1009b138], ecx
mov dword [0x1009b13c], eax
mov ecx, dword [0x1009b138]
mov edx, dword [0x1009b13c]
mov dword [0x1009b130], ecx
mov dword [0x1009b134], edx
mov eax, dword [ebp - 0x24]
sub eax, dword [0x1009b170]
mov ecx, dword [ebp - 0x24]
add ecx, eax
mov dword [ebp - 0x24], ecx
movzx edx, word [ebp - 0x1c]
mov dword [ebp - 0x30c], edx
cmp dword [ebp - 0x30c], 4
ja case.default.0x1003ba90
mov eax, dword [ebp - 0x30c]
jmp dword [eax*4 + 0x1003ce88]
movzx ecx, byte [0x1009b033]
movsx edx, byte [ebp - 5]
sub ecx, edx
mov dword [0x1009b1b0], ecx
mov eax, 2
imul ecx, eax, 0x31a5
movzx edx, word [ecx + 0x102f2938]
mov dword [0x1009b14c], edx
mov eax, dword [0x1009b170]
sub eax, 0xcec5
mov word [0x1009b180], ax
jmp case.default.0x1003ba90
movsx ecx, byte [ebp - 5]
imul ecx, dword [ebp - 0x20]
mov dword [ebp - 0x20], ecx
mov dword [0x1009b140], 0xc2
imul edx, dword [ebp - 0x34], 0x81
mov dword [0x1009b14c], edx
jmp case.default.0x1003ba90
mov eax, dword [ebp - 0x30]
add eax, 0x6ef47044
cdq
mov dword [0x1009b168], eax
mov dword [0x1009b16c], edx
mov eax, 1
imul ecx, eax, 0x92
movzx edx, byte [ecx + 0x101c09f0]
movzx eax, word [ebp - 0xc]
add eax, edx
mov word [ebp - 0xc], ax
mov ecx, dword [ebp - 0x24]
sub ecx, 0x9b8c
xor edx, edx
mov dword [0x1009b138], ecx
mov dword [0x1009b13c], edx
movzx eax, word [ebp - 0xc]
xor eax, dword [0x1009b170]
mov dword [0x1009b170], eax
mov ecx, 1
imul edx, ecx, 0xad2
mov al, byte [ebp - 0x48]
mov byte [edx + 0x102088e8], al
jmp case.default.0x1003ba90
movzx ecx, word [0x1009b158]
mov edx, dword [0x1009b18c]
lea eax, [ecx + edx + 0x42258e3f]
mov word [0x1009b158], ax
movzx ecx, byte [0x1009b0ee]
mov edx, dword [0x1009b1b0]
imul edx, ecx
not edx
mov byte [ebp - 4], dl
mov eax, dword [0x1009b140]
cdq
mov ecx, eax
mov esi, edx
xor ecx, 0xc05a968
xor esi, 0x28198
not ecx
not esi
movsx eax, byte [ebp - 6]
cdq
add ecx, eax
adc esi, edx
mov dword [ebp - 0x8a8], ecx
mov dword [ebp - 0x8a4], esi
mov edx, dword [ebp - 0x8a8]
or edx, dword [ebp - 0x8a4]
jne 0x1003bbed
xor eax, eax
mov dword [ebp - 0x8b8], 1
mov dword [ebp - 0x8b4], eax
jmp 0x1003bbf8
xorps xmm0, xmm0
movlpd qword [ebp - 0x8b8], xmm0
movsx eax, word [0x1009b180]
cdq
add eax, dword [ebp - 0x50]
adc edx, dword [ebp - 0x4c]
mov dword [ebp - 0x8b0], eax
mov dword [ebp - 0x8ac], edx
mov ecx, dword [ebp - 0x8b0]
or ecx, dword [ebp - 0x8ac]
jne 0x1003bc34
xor edx, edx
mov dword [ebp - 0x454], 1
mov dword [ebp - 0x450], edx
jmp 0x1003bc3f
xorps xmm0, xmm0
movlpd qword [ebp - 0x454], xmm0
movzx eax, word [0x1009b158]
test eax, eax
jne 0x1003bc5e
xor ecx, ecx
mov dword [ebp - 0x44c], 1
mov dword [ebp - 0x448], ecx
jmp 0x1003bc69
xorps xmm0, xmm0
movlpd qword [ebp - 0x44c], xmm0
mov edx, dword [ebp - 0x44c]
add edx, 0x148d430
mov eax, dword [ebp - 0x448]
adc eax, 0xc2364
not edx
not eax
push eax
push edx
mov ecx, dword [ebp - 0x450]
push ecx
mov edx, dword [ebp - 0x454]
push edx
call fcn.1006c090
not eax
xor eax, dword [ebp - 0x8b8]
mov byte [0x1009b0a7], al
movsx eax, byte [0x1009b0bb]
movsx ecx, byte [ebp - 6]
and eax, ecx
movsx edx, byte [0x1009b0bb]
add edx, eax
mov byte [0x1009b0bb], dl
movsx eax, byte [ebp - 2]
cdq
mov ecx, 0x9303463
sub ecx, eax
mov dword [0x1009b18c], ecx
jmp case.default.0x1003ba90
movzx edx, word [ebp - 0x1c]
mov eax, dword [0x1009b14c]
add eax, edx
mov ecx, dword [0x1009b14c]
sub ecx, eax
mov dword [0x1009b14c], ecx
movzx edx, word [0x1009b184]
sub edx, 0x17fa729e
mov byte [0x1009b0bb], dl
mov al, byte [ebp - 0x58]
mov ecx, 1
imul edx, ecx, 0x78
mov byte [edx + 0x101c09f0], al
mov eax, 0x3957c
mov dword [0x1009b150], 0x751a04b5
mov dword [0x1009b154], eax
mov byte [0x1009b07f], 0xc1
movzx ecx, word [ebp - 0x14]
xor ecx, dword [0x1009b1a0]
movzx edx, word [ebp - 0x14]
imul edx, ecx
mov word [ebp - 0x14], dx
movzx eax, byte [0x1009b0ef]
test eax, eax
jne 0x1003bd62
xor ecx, ecx
mov dword [ebp - 0x45c], 1
mov dword [ebp - 0x458], ecx
jmp 0x1003bd6d
xorps xmm0, xmm0
movlpd qword [ebp - 0x45c], xmm0
mov edx, dword [0x1009b1a8]
mov eax, dword [0x1009b1ac]
sub edx, 0xccf2d206
sbb eax, 0
mov ecx, dword [ebp - 0x458]
push ecx
mov ecx, dword [ebp - 0x45c]
push ecx
push eax
push edx
call fcn.1006c090
mov ecx, dword [ebp - 0x58]
not ecx
mov esi, dword [ebp - 0x54]
not esi
xor edi, edi
xor ecx, dword [0x1009b170]
xor esi, edi
mov edi, dword [ebp - 0x30]
imul edi, dword [0x1009b1a0]
xor ebx, ebx
add ecx, edi
adc esi, ebx
push esi
push ecx
push edx
push eax
call fcn.1006c090
mov byte [0x1009b07e], al
movzx eax, byte [0x1009b01f]
cdq
add eax, dword [0x1009b178]
adc edx, dword [0x1009b17c]
mov dword [0x1009b178], eax
mov dword [0x1009b17c], edx
mov edx, dword [0x1009b150]
mov eax, dword [0x1009b154]
mov ecx, dword [ebp - 0x50]
add ecx, 1
mov esi, dword [ebp - 0x4c]
adc esi, 0
mov dword [ebp - 0x8c0], edx
mov dword [ebp - 0x8bc], eax
mov dword [ebp - 0x8c8], ecx
mov dword [ebp - 0x8c4], esi
mov edx, dword [ebp - 0x8c0]
cmp edx, dword [ebp - 0x8c8]
jne 0x1003bfe2
mov eax, dword [ebp - 0x8bc]
cmp eax, dword [ebp - 0x8c4]
jne 0x1003bfe2
movzx ecx, byte [0x1009b01f]
movsx edx, byte [ebp - 6]
add edx, dword [0x1009b170]
add edx, ecx
not edx
xor eax, eax
xor ecx, ecx
mov esi, dword [0x1009b1a8]
mov edi, dword [0x1009b1ac]
sub esi, dword [ebp - 0x24]
sbb edi, ecx
push edi
push esi
push eax
push edx
call fcn.1006c090
mov dword [0x1009b1a0], eax
mov dword [ebp - 0x20], 0xb2
movzx eax, word [ebp - 0xc]
xor eax, 0x79
cdq
mov ebx, eax
mov eax, dword [ebp - 0x34]
cdq
push 0xe0364
push 0x95e0d320
push edx
push eax
call fcn.1006c090
add ebx, eax
mov byte [0x1009b0a7], bl
mov edx, dword [ebp - 0x34]
mov eax, 4
imul ecx, eax, 0x4935
mov dword [ecx + 0x10223810], edx
mov eax, dword [ebp - 0x34]
cdq
xor eax, dword [0x1009b160]
xor edx, dword [0x1009b164]
mov dword [0x1009b160], eax
mov dword [0x1009b164], edx
mov edx, 0xef22
mov word [0x1009b158], dx
movzx eax, byte [ebp - 4]
movzx ecx, byte [0x1009b033]
sub ecx, 0xd35a
sub eax, ecx
cdq
mov ecx, eax
movsx edx, byte [ebp - 5]
not edx
imul eax, edx, 0
cdq
mov esi, eax
mov edi, dword [0x1009b150]
mov eax, dword [0x1009b154]
mov dword [ebp - 0x988], eax
not edi
movsx eax, byte [ebp - 5]
cdq
sub edi, eax
sub esi, edi
add ecx, esi
mov dword [ebp - 0x30], ecx
mov ecx, dword [0x1009b160]
add ecx, 0xaa87
mov byte [ebp - 3], cl
mov edx, dword [0x1009b1a8]
mov eax, dword [0x1009b1ac]
mov dword [ebp - 0x98c], eax
add edx, 0xaf077cba
mov ecx, dword [0x1009b148]
add ecx, edx
mov dword [0x1009b148], ecx
mov dx, word [0x1009bc7c]
mov word [ebp - 0x10], dx
mov eax, dword [ebp - 0x48]
and eax, 0x3d
cdq
mov dword [0x1009b130], eax
mov dword [0x1009b134], edx
mov byte [0x1009b033], 1
cmp dword [0x1009b178], 1
jne 0x1003bfe2
cmp dword [0x1009b17c], 0
jne 0x1003bfe2
mov eax, dword [0x1009b178]
sub eax, 0xdbad
mov byte [0x1009b0ba], al
mov cx, word [ebp - 0x18]
mov edx, 2
imul eax, edx, 0x1375
mov word [eax + 0x1021a340], cx
movsx eax, byte [ebp - 5]
cdq
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
jmp 0x1003bfe2
mov ecx, 0x3957c
mov dword [0x1009b150], 0x751a04b5
mov dword [0x1009b154], ecx
movzx eax, word [0x1009b158]
cdq
sub eax, 0x147b643c
mov byte [ebp - 2], al
mov edx, dword [ebp - 0x58]
sub edx, 0x4acb9f8d
mov byte [0x1009b0a7], dl
movzx eax, word [ebp - 0x18]
imul ecx, eax, 0x6baf
mov byte [ebp - 6], cl
movsx edx, word [ebp - 0x10]
add edx, 0xb973
jne 0x1003c043
xor eax, eax
mov dword [ebp - 0x464], 1
mov dword [ebp - 0x460], eax
jmp 0x1003c04e
xorps xmm0, xmm0
movlpd qword [ebp - 0x464], xmm0
mov ecx, dword [ebp - 0x464]
mov edx, dword [ebp - 0x460]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edx
mov eax, dword [0x1009b1b0]
xor eax, dword [ebp - 0x30]
mov ecx, dword [0x1009b1b0]
sub ecx, eax
mov dword [0x1009b1b0], ecx
xor eax, eax
jmp 0x1003ce61
jmp 0x1003c825
movsx edx, byte [ebp - 2]
movsx eax, word [0x1009b180]
imul edx, eax
mov byte [ebp - 2], dl
movsx ecx, byte [ebp - 6]
test ecx, ecx
je 0x1003c0a7
movsx edx, byte [ebp - 1]
mov dword [ebp - 0x310], edx
jmp 0x1003c0b2
mov eax, dword [0x1009b170]
mov dword [ebp - 0x310], eax
mov cl, byte [ebp - 0x310]
mov byte [0x1009b0ee], cl
movzx edx, word [ebp - 0x14]
imul edx, dword [0x1009b1b0]
movzx eax, word [ebp - 0x14]
add eax, edx
mov word [ebp - 0x14], ax
mov dword [0x1009b1b0], 0x3e6d9284
movsx eax, byte [ebp - 1]
not eax
cdq
mov ecx, eax
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x990], eax
add ecx, edx
mov eax, dword [ebp - 0x48]
cdq
mov edx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x994], esi
sub edx, eax
add ecx, edx
mov byte [0x1009b0a7], cl
mov eax, dword [0x1009b160]
or eax, dword [0x1009b164]
je 0x1003c131
movzx eax, byte [0x1009b033]
cdq
mov dword [ebp - 0x370], eax
mov dword [ebp - 0x36c], edx
jmp 0x1003c143
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x370], ecx
mov dword [ebp - 0x36c], edx
mov eax, dword [ebp - 0x370]
mov ecx, dword [ebp - 0x36c]
mov dword [0x1009b138], eax
mov dword [0x1009b13c], ecx
mov edx, dword [0x1009b144]
sub edx, 0x9758a94
mov byte [ebp - 5], dl
movzx eax, byte [ebp - 4]
add eax, 0x3e6d9284
cmp dword [0x1009b1b0], eax
jne 0x1003c4b3
mov ecx, dword [0x1009b150]
mov edx, dword [0x1009b154]
mov eax, dword [ebp - 0x50]
add eax, 0x64
mov esi, dword [ebp - 0x4c]
adc esi, 0
mov dword [ebp - 0x8d0], ecx
mov dword [ebp - 0x8cc], edx
mov dword [ebp - 0x8d8], eax
mov dword [ebp - 0x8d4], esi
mov ecx, dword [ebp - 0x8d0]
cmp ecx, dword [ebp - 0x8d8]
jne 0x1003c4b3
mov edx, dword [ebp - 0x8cc]
cmp edx, dword [ebp - 0x8d4]
jne 0x1003c4b3
movzx eax, word [ebp - 0x18]
test eax, eax
je 0x1003c39c
mov dword [ebp - 0x148], 0xd6b
movzx eax, byte [ebp - 3]
cdq
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x998], edx
add eax, ecx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x30]
add eax, 0x5aecdd9c
mov byte [ebp - 4], al
movzx ecx, byte [0x1009b0ee]
xor ecx, dword [0x1009b170]
movzx edx, byte [0x1009b033]
mov eax, dword [ebp - 0x48]
sub eax, edx
add ecx, eax
jne 0x1003c232
mov dword [ebp - 0x314], 1
jmp 0x1003c23c
mov dword [ebp - 0x314], 0
movzx ecx, byte [ebp - 3]
add ecx, 0xbf65
mov edx, dword [ebp - 0x20]
sub edx, ecx
and edx, dword [ebp - 0x314]
jne 0x1003c267
xor eax, eax
mov dword [ebp - 0x46c], 1
mov dword [ebp - 0x468], eax
jmp 0x1003c272
xorps xmm0, xmm0
movlpd qword [ebp - 0x46c], xmm0
mov ecx, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x468]
mov dword [0x1009b160], ecx
mov dword [0x1009b164], edx
mov dword [ebp - 0x20], 0x45be
mov eax, dword [ebp - 0x30]
xor eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
sub ecx, eax
mov dword [ebp - 0x30], ecx
mov edx, dword [0x1009bc7c]
xor eax, eax
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x148], 0xcff
jle 0x1003c397
mov ecx, dword [ebp - 0x24]
xor edx, edx
push edx
push ecx
mov eax, dword [ebp - 0x64]
push eax
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.1006c090
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
movzx eax, word [ebp - 0x14]
cdq
push edx
push eax
mov edx, dword [ebp - 0x4c]
push edx
mov eax, dword [ebp - 0x50]
push eax
call fcn.1006c090
mov ecx, eax
mov esi, edx
movzx eax, byte [0x1009b07f]
add eax, 0x23
cdq
add ecx, eax
adc esi, edx
movsx edx, byte [ebp - 2]
mov eax, dword [0x1009b140]
sub eax, edx
cdq
mov edi, eax
mov ebx, edx
movsx eax, word [ebp - 0x10]
cdq
mov dword [ebp - 0x534], esi
mov esi, dword [ebp - 0x40]
sub eax, dword [ebp - 0x44]
sbb edx, esi
sub edi, eax
sbb ebx, edx
add ecx, edi
mov esi, dword [ebp - 0x534]
adc esi, ebx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], esi
movzx eax, byte [0x1009b0ef]
test eax, eax
je 0x1003c34e
mov ecx, dword [0x1009b148]
mov dword [ebp - 0x318], ecx
jmp 0x1003c35b
movzx edx, word [0x1009b158]
mov dword [ebp - 0x318], edx
mov eax, dword [ebp - 0x318]
mov dword [0x1009b140], eax
mov cl, byte [0x1009b0bb]
sub cl, 1
mov byte [0x1009b0bb], cl
movsx eax, byte [ebp - 1]
sar eax, 5
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x148]
sub edx, 1
mov dword [ebp - 0x148], edx
jmp 0x1003c2ad
jmp 0x1003c48b
mov eax, dword [0x1009b1b0]
cmp dword [0x1009b14c], eax
jae 0x1003c43b
movzx ecx, byte [0x1009b033]
test ecx, ecx
je 0x1003c3c6
mov edx, dword [0x1009b14c]
mov dword [ebp - 0x31c], edx
jmp 0x1003c3d1
mov eax, dword [0x1009b190]
mov dword [ebp - 0x31c], eax
mov ecx, dword [ebp - 0x31c]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x48]
shl edx, 4
mov word [0x1009b180], dx
xor eax, eax
mov dword [0x1009b130], 1
mov dword [0x1009b134], eax
movsx eax, byte [ebp - 2]
cdq
mov ecx, dword [0x1009b17c]
push ecx
mov ecx, dword [0x1009b178]
push ecx
push edx
push eax
call fcn.1006c090
mov byte [ebp - 2], al
movsx edx, byte [ebp - 6]
movzx eax, byte [ebp - 3]
imul edx, eax
movsx ecx, byte [ebp - 6]
sub ecx, edx
mov byte [ebp - 6], cl
movsx edx, word [ebp - 0x10]
add edx, 0x82
mov byte [0x1009b0a6], dl
jmp 0x1003c48b
movzx eax, byte [ebp - 4]
test eax, eax
jne 0x1003c48b
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
push 0
push 0x58d0
push edx
push ecx
call fcn.1006c090
mov byte [ebp - 4], al
movzx eax, byte [0x1009b01f]
movzx ecx, word [ebp - 0x14]
sub eax, ecx
movzx edx, byte [0x1009b01f]
xor edx, eax
mov byte [0x1009b01f], dl
movzx eax, byte [0x1009b033]
movsx ecx, byte [ebp - 1]
lea edx, [ecx + eax + 0x3d210fa0]
mov byte [ebp - 1], dl
jmp 0x1003c4b3
mov dword [0x1009b1b0], 0x3e6d9284
movzx eax, byte [0x1009b0ee]
imul eax, dword [0x1009b1a0]
movzx ecx, byte [0x1009b0ee]
add ecx, eax
mov byte [0x1009b0ee], cl
mov dword [ebp - 0x34], 8
mov edx, dword [0x1009b148]
xor eax, eax
sub edx, 0xb3a86689
sbb eax, 0xa0a87
mov dword [0x1009b130], edx
mov dword [0x1009b134], eax
mov ecx, dword [0x1009b1a8]
mov edx, dword [0x1009b1ac]
push 0
push 0xa4
push edx
push ecx
call fcn.1006c090
mov byte [ebp - 1], al
xor eax, eax
mov dword [0x1009b130], 0x79
mov dword [0x1009b134], eax
push 0
push 0x5d70
mov ecx, dword [0x1009b13c]
push ecx
mov edx, dword [0x1009b138]
push edx
call fcn.1006c090
mov byte [ebp - 1], al
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push 0
push 0x46717777
push ecx
push eax
call fcn.1006c090
mov dword [0x1009b170], eax
mov edx, dword [0x1009b130]
mov eax, dword [0x1009b134]
push 0x83db
push 0xa8aa8b9b
push eax
push edx
call fcn.1006c090
mov dword [0x1009b150], eax
mov dword [0x1009b154], edx
movsx eax, byte [0x1009b0ba]
cdq
mov ecx, eax
mov esi, edx
movsx eax, byte [ebp - 1]
cdq
add eax, 0x546079f5
adc edx, 0xe2fbe
mov dword [ebp - 0x8e0], ecx
mov dword [ebp - 0x8dc], esi
mov dword [ebp - 0x8e8], eax
mov dword [ebp - 0x8e4], edx
mov edx, dword [ebp - 0x8e0]
cmp edx, dword [ebp - 0x8e8]
jne 0x1003c733
mov eax, dword [ebp - 0x8dc]
cmp eax, dword [ebp - 0x8e4]
jne 0x1003c733
movsx ecx, byte [0x1009b0bb]
movsx edx, byte [ebp - 6]
add ecx, edx
cmp ecx, 1
jne 0x1003c733
movsx eax, byte [0x1009b0ba]
cmp dword [0x1009b140], eax
jne 0x1003c613
mov dword [ebp - 0x320], 1
jmp 0x1003c61d
mov dword [ebp - 0x320], 0
cmp dword [0x1009b140], 0x3f
jne 0x1003c632
mov dword [ebp - 0x324], 1
jmp 0x1003c63c
mov dword [ebp - 0x324], 0
mov ecx, dword [ebp - 0x320]
cmp ecx, dword [ebp - 0x324]
jle 0x1003c6aa
mov eax, dword [0x1009b130]
mov edx, dword [0x1009b134]
mov cl, 4
call fcn.1006c0f0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
movzx edx, byte [0x1009b07f]
mov eax, dword [0x1009b1b0]
imul eax, edx
mov ecx, dword [0x1009b1b0]
sub ecx, eax
mov dword [0x1009b1b0], ecx
mov edx, dword [ebp - 0x30]
sub edx, 0xfa
movzx eax, word [ebp - 0x14]
sub eax, edx
mov word [ebp - 0x14], ax
movzx eax, byte [0x1009b01f]
sar eax, 6
cdq
mov dword [0x1009b1a8], eax
mov dword [0x1009b1ac], edx
jmp 0x1003c6f5
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x99c], edx
sub ecx, 0xf2
mov dword [ebp - 0x30], ecx
movsx eax, byte [0x1009b0bb]
imul eax, dword [ebp - 0x34]
mov byte [0x1009b0bb], al
mov ecx, dword [0x1009b150]
mov edx, dword [0x1009b154]
push 0
push 0x7acc
push edx
push ecx
call fcn.1006c090
mov byte [0x1009b0a6], al
imul eax, dword [ebp - 0x48], 0x66
mov byte [ebp - 2], al
jmp 0x1003c51c
movsx ecx, byte [ebp - 1]
movsx edx, byte [0x1009b0bb]
sub ecx, edx
movsx eax, byte [ebp - 1]
imul eax, ecx
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 3]
test ecx, ecx
jne 0x1003c75e
mov dword [ebp - 0x32c], 1
jmp 0x1003c768
mov dword [ebp - 0x32c], 0
movzx edx, byte [0x1009b033]
sub edx, dword [ebp - 0x34]
not edx
mov eax, edx
imul eax, dword [ebp - 0x32c]
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
movsx eax, byte [ebp - 2]
xor eax, 0x585f
cdq
mov esi, eax
mov eax, dword [0x1009b150]
mov ecx, dword [0x1009b154]
sub eax, dword [ebp - 0x58]
sbb ecx, dword [ebp - 0x54]
push 0
push 0x57
push ecx
push eax
call fcn.1006c090
add esi, eax
mov dword [ebp - 0x34], esi
movzx edx, byte [0x1009b07e]
sub edx, 0x7b8af53e
mov byte [ebp - 4], dl
movzx eax, byte [0x1009b07e]
cdq
mov ecx, dword [0x1009b164]
push ecx
mov ecx, dword [0x1009b160]
push ecx
push edx
push eax
call fcn.1006c090
mov ecx, eax
movzx eax, byte [0x1009b07e]
cdq
sub eax, ecx
mov byte [0x1009b07e], al
movzx edx, word [0x1009b158]
mov eax, dword [0x1009b144]
imul eax, edx
not eax
movzx ecx, word [ebp - 0x1c]
movsx edx, byte [ebp - 2]
imul ecx, edx
sub eax, ecx
movsx ecx, byte [ebp - 6]
movsx edx, byte [ebp - 2]
sub ecx, edx
not ecx
add eax, ecx
mov dword [ebp - 0x24], eax
xor eax, eax
jmp 0x1003ce61
mov byte [0x1009b07f], 0x78
mov ecx, dword [0x1009b168]
mov esi, dword [0x1009b16c]
movsx eax, byte [0x1009b0bb]
cdq
mov dword [ebp - 0x8f0], ecx
mov dword [ebp - 0x8ec], esi
mov dword [ebp - 0x8f8], eax
mov dword [ebp - 0x8f4], edx
mov edx, dword [ebp - 0x8f0]
cmp edx, dword [ebp - 0x8f8]
jne 0x1003c874
mov eax, dword [ebp - 0x8ec]
cmp eax, dword [ebp - 0x8f4]
je 0x1003c880
mov dword [ebp - 0x330], 1
jmp 0x1003c88a
mov dword [ebp - 0x330], 0
mov ecx, dword [0x1009b168]
mov edx, dword [0x1009b16c]
mov dword [ebp - 0x900], ecx
mov dword [ebp - 0x8fc], edx
cmp dword [ebp - 0x900], 0x5a
jne 0x1003c8b4
cmp dword [ebp - 0x8fc], 0
je 0x1003c8c0
mov dword [ebp - 0x2f0], 1
jmp 0x1003c8ca
mov dword [ebp - 0x2f0], 0
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x2f0]
je 0x1003c954
mov ecx, dword [0x1009b190]
shr ecx, 7
mov word [ebp - 0x14], cx
mov edx, dword [0x1009bc7c]
xor eax, eax
mov dword [0x1009b168], edx
mov dword [0x1009b16c], eax
mov ecx, dword [ebp - 0x50]
or ecx, dword [ebp - 0x4c]
je 0x1003c90b
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x334], edx
jmp 0x1003c915
movsx eax, byte [ebp - 6]
mov dword [ebp - 0x334], eax
mov cl, byte [ebp - 0x334]
mov byte [0x1009b0ba], cl
movzx edx, word [0x1009b184]
imul eax, edx, 0xbac6
mov dword [0x1009b14c], eax
mov eax, dword [0x1009b14c]
cdq
mov ecx, dword [0x1009b168]
mov edx, dword [0x1009b16c]
mov dword [ebp - 0x9a0], edx
add ecx, eax
not ecx
mov dword [ebp - 0x48], ecx
jmp 0x1003c999
mov byte [ebp - 4], 0x51
mov eax, dword [0x1009b198]
mov ecx, dword [0x1009b19c]
mov dword [ebp - 0x9a4], ecx
mov edx, 2
imul ecx, edx, 0xb
mov word [ecx + 0x10223758], ax
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
add edx, 0x54cf
adc eax, 0
mov dword [0x1009b138], edx
mov dword [0x1009b13c], eax
mov byte [0x1009b07e], 0xa
movzx ecx, byte [0x1009b07f]
movsx edx, byte [ebp - 6]
add edx, 1
cmp ecx, edx
jne 0x1003cd1c
movsx eax, word [ebp - 0x10]
movsx ecx, byte [ebp - 1]
imul eax, ecx
movsx edx, word [ebp - 0x10]
sub edx, eax
mov word [ebp - 0x10], dx
cmp dword [0x1009b148], 0
jne 0x1003c9e1
xor eax, eax
mov dword [ebp - 0x474], 1
mov dword [ebp - 0x470], eax
jmp 0x1003c9ec
xorps xmm0, xmm0
movlpd qword [ebp - 0x474], xmm0
mov ecx, dword [0x1009b168]
mov edx, dword [0x1009b16c]
mov eax, dword [ebp - 0x470]
push eax
mov eax, dword [ebp - 0x474]
push eax
push edx
push ecx
call fcn.1006c090
add eax, 0xb8fbdccd
mov dword [0x1009b148], eax
mov ecx, dword [0x1009bc7c]
xor edx, edx
mov dword [0x1009b138], ecx
mov dword [0x1009b13c], edx
mov eax, dword [0x1009b18c]
add eax, 0x29e0ab
xor ecx, ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x50]
sub edx, 0xfa73
mov word [0x1009b180], dx
mov eax, dword [0x1009b18c]
shl eax, 7
mov byte [0x1009b07f], al
movzx ecx, byte [0x1009b0a6]
test ecx, ecx
jne 0x1003ca71
mov dword [ebp - 0x338], 1
jmp 0x1003ca7b
mov dword [ebp - 0x338], 0
movzx edx, byte [0x1009b0a6]
xor edx, dword [ebp - 0x338]
jne 0x1003ca90
mov byte [ebp - 0x6a], 1
jmp 0x1003ca94
mov byte [ebp - 0x6a], 0
mov al, byte [ebp - 0x6a]
mov byte [0x1009b07e], al
cmp dword [0x1009b178], 1
jne 0x1003cd1c
cmp dword [0x1009b17c], 0
jne 0x1003cd1c
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessorNumber]
mov dword [0x1009b148], eax
cmp dword [0x1009b148], 0
je 0x1003cc16
mov ecx, dword [0x1009b1a8]
mov edx, dword [0x1009b1ac]
mov dword [ebp - 0x908], ecx
mov dword [ebp - 0x904], edx
mov eax, dword [ebp - 0x908]
or eax, dword [ebp - 0x904]
je 0x1003cb5f
mov ecx, dword [0x1009b140]
shl ecx, 2
mov dword [0x1009b1a0], ecx
mov ecx, dword [ebp - 0x50]
not ecx
mov esi, dword [ebp - 0x4c]
not esi
movsx eax, byte [ebp - 2]
movsx edx, byte [0x1009b0a7]
sub eax, edx
cdq
add ecx, eax
adc esi, edx
not ecx
not esi
mov dword [0x1009b178], ecx
mov dword [0x1009b17c], esi
cmp dword [0x1009b144], 0
je 0x1003cb45
mov ax, word [ebp - 0x18]
mov word [ebp - 0xa4], ax
jmp 0x1003cb50
mov cx, word [ebp - 0xc]
mov word [ebp - 0xa4], cx
movzx edx, word [ebp - 0xa4]
mov dword [ebp - 0x30], edx
jmp 0x1003cc11
movzx eax, byte [0x1009b01f]
test eax, eax
jne 0x1003cc11
movsx ecx, word [0x1009b180]
imul ecx, dword [ebp - 0x30]
movsx edx, word [0x1009b180]
xor edx, ecx
mov word [0x1009b180], dx
movzx eax, word [ebp - 0x14]
movzx ecx, byte [0x1009b033]
imul eax, ecx
not eax
movsx edx, byte [ebp - 2]
imul eax, edx
mov byte [0x1009b0ee], al
mov ecx, dword [0x1009b198]
mov esi, dword [0x1009b19c]
not ecx
not esi
movsx eax, byte [ebp - 1]
movzx edx, byte [0x1009b033]
imul eax, edx
cdq
push edx
push eax
push esi
push ecx
call fcn.1006c090
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov eax, dword [0x1009bc7c]
mov dword [ebp - 0x34], eax
mov ecx, 1
imul edx, ecx, 0x6913
movzx eax, byte [edx + 0x10153d68]
cdq
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
or ecx, eax
or esi, edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], esi
movzx edx, byte [0x1009b0ef]
add edx, 0xf7
mov dword [0x1009b148], edx
jmp 0x1003ccb7
cmp dword [ebp - 0x30], 0
je 0x1003cc28
movzx eax, word [ebp - 0x18]
mov dword [ebp - 0x33c], eax
jmp 0x1003cc34
mov ecx, dword [0x1009b140]
mov dword [ebp - 0x33c], ecx
mov dl, byte [ebp - 0x33c]
mov byte [0x1009b0ba], dl
movsx eax, byte [0x1009b0bb]
test eax, eax
jne 0x1003cc57
mov dword [ebp - 0x340], 1
jmp 0x1003cc61
mov dword [ebp - 0x340], 0
mov ecx, dword [0x1009b14c]
add ecx, dword [ebp - 0x340]
mov word [ebp - 0x18], cx
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
sub edx, 1
sbb eax, 0
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], eax
movzx eax, word [ebp - 0xc]
add eax, 0x307e
cdq
push edx
push eax
mov ecx, dword [0x1009b13c]
push ecx
mov edx, dword [0x1009b138]
push edx
call fcn.1006c090
mov dword [0x1009b138], eax
mov dword [0x1009b13c], edx
mov dword [0x1009b188], 0x9bedb4b4
jmp 0x1003cd1c
mov byte [0x1009b07f], 0x78
movsx ecx, byte [ebp - 1]
imul edx, ecx, 0x3f
movzx eax, byte [ebp - 4]
xor eax, edx
mov byte [ebp - 4], al
movzx eax, byte [0x1009b033]
cdq
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
sub edx, ecx
sbb eax, esi
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x40], eax
mov ecx, dword [0x1009b198]
mov edx, dword [0x1009b19c]
mov dword [ebp - 0x9a8], edx
add ecx, 0xdac7a329
mov dword [0x1009b148], ecx
cmp dword [0x1009b190], 0
jne 0x1003cd88
mov dword [ebp - 0x344], 1
jmp 0x1003cd92
mov dword [ebp - 0x344], 0
mov eax, dword [ebp - 0x344]
add eax, dword [0x1009b170]
jne 0x1003cdac
mov dword [ebp - 0x348], 1
jmp 0x1003cdb6
mov dword [ebp - 0x348], 0
movsx ecx, byte [ebp - 1]
mov edx, dword [0x1009b190]
sub edx, ecx
add edx, dword [ebp - 0x348]
mov ecx, edx
movsx eax, byte [0x1009b0a7]
xor eax, 0x296
cdq
or eax, dword [ebp - 0x58]
and ecx, eax
mov dword [0x1009b170], ecx
movzx edx, byte [ebp - 4]
mov eax, edx
imul eax, dword [ebp - 0x20]
cdq
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
mov eax, dword [0x1009bc7c]
mov dword [0x1009b1a0], eax
mov ecx, dword [0x1009b178]
add ecx, dword [ebp - 0x2c]
mov edx, dword [0x1009b17c]
adc edx, dword [ebp - 0x28]
mov dword [0x1009b178], ecx
mov dword [0x1009b17c], edx
mov eax, dword [ebp - 0x24]
shr eax, 5
mov byte [0x1009b033], al
movsx eax, byte [ebp - 1]
cdq
mov ecx, dword [0x1009b130]
mov esi, dword [0x1009b134]
sub ecx, eax
sbb esi, edx
mov edx, dword [0x1009b130]
mov eax, dword [0x1009b134]
add edx, ecx
adc eax, esi
mov dword [0x1009b130], edx
mov dword [0x1009b134], eax
mov byte [0x1009b01f], 2
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret