Function at 0x100422b2
Capabilities:
Authenticate hmac
Encode data using base64
Encode data using xor
Parse credit card information
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10066ca0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x187c
call fcn.1005a9b0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov eax, dword [0x10081310]
xor ecx, ecx
mov dword [ebp - 0x1640], eax
mov dword [ebp - 0x163c], ecx
movzx dx, byte [0x10081267]
mov word [ebp - 0x30], dx
mov dword [ebp - 0x54], 0xee26a6ac
mov al, byte [0x10081267]
mov byte [ebp - 0x12], al
mov ecx, dword [0x10081308]
mov edx, dword [0x1008130c]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], edx
mov byte [ebp - 0x11], 0x15
mov eax, dword [0x100812d8]
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
mov eax, dword [0x10081360]
mov dword [ebp - 0x3c], eax
mov ecx, dword [0x100812f0]
mov edx, dword [0x100812f4]
mov dword [ebp - 0x1660], edx
mov word [ebp - 0x2c], cx
mov eax, 0xffffa628
mov word [ebp - 0x18], ax
mov ecx, dword [0x100812e0]
mov dword [ebp - 0x38], ecx
movzx edx, byte [str.pcWindows::Compat::A]
mov dword [ebp - 0x64], edx
movzx eax, byte [0x10081207]
mov dword [ebp - 0x44], eax
mov ecx, dword [0x1008134c]
mov word [ebp - 0x20], cx
mov edx, dword [0x100812f8]
mov dword [ebp - 0x70], edx
mov ax, word [0x100812e0]
mov word [ebp - 0x24], ax
mov ecx, dword [0x10081318]
mov edx, dword [0x1008131c]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
mov ax, word [0x10081308]
mov word [ebp - 0x1c], ax
mov dword [ebp - 0x48], 0x3c
mov dword [ebp - 0x60], 0x74f2d220
mov ecx, 0x31b9
mov word [ebp - 0x28], cx
mov dword [ebp - 0x74], 0x4b1fcaf6
movzx edx, byte [str.pcWindows::Compat::A]
mov dword [ebp - 0x40], edx
movsx eax, word [0x10081314]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x1e9], 0x24
mov dword [ebp - 0x1664], 0xbd24e61e
mov cl, byte [0x1008128f]
mov byte [ebp - 0x111], cl
mov dword [ebp - 0x167c], 0xe7
mov byte [ebp - 0x112], 0x28
mov dword [ebp - 0x1680], 0x713a073e
mov dx, word [0x10081320]
mov word [ebp - 0x1140], dx
mov eax, 0x5c
mov word [ebp - 0x113c], ax
mov ecx, 0x4223
mov word [ebp - 0x1138], cx
movsx edx, byte [str._Windows::Compat::A]
mov dword [ebp - 0x1684], edx
mov eax, dword [0x100812f0]
mov ecx, dword [0x100812f4]
mov dword [ebp - 0x1688], ecx
mov dword [ebp - 0x168c], eax
movzx dx, byte [0x100812cc]
mov word [ebp - 0x1134], dx
mov dword [ebp - 0x1690], 0x290bf80c
mov eax, dword [0x10081348]
mov dword [ebp - 0x1624], eax
xor ecx, ecx
mov dword [ebp - 0x1648], 0x2edd16f0
mov dword [ebp - 0x1644], ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x38], eax
mov edx, dword [0x102afee0]
mov dword [ebp - 0x120], edx
mov eax, dword [0x10081350]
add eax, dword [ebp - 0x38]
mov ecx, dword [0x10081350]
imul ecx, eax
mov dword [0x10081350], ecx
movzx edx, byte [0x100812cc]
test edx, edx
jne 0x10042123
mov dword [ebp - 0xa7c], 1
jmp 0x1004212d
mov dword [ebp - 0xa7c], 0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x6c]
sub ecx, dword [0x10081320]
sub ecx, eax
movsx edx, word [ebp - 0x18]
add edx, dword [0x100812e8]
imul edx, dword [ebp - 0xa7c]
xor edx, ecx
mov byte [0x10081267], dl
mov al, byte [ebp - 0x6c]
mov ecx, 1
imul edx, ecx, 0x5d73
mov byte [edx + 0x1047d570], al
mov eax, dword [ebp - 0x120]
add eax, 0x4de
mov dword [ebp - 0x1694], eax
mov dword [0x10081324], 4
mov ecx, dword [ebp - 0x48]
sub ecx, dword [0x100812e8]
imul ecx, dword [ebp - 0x48]
mov dword [ebp - 0x48], ecx
movzx edx, word [ebp - 0x24]
add edx, dword [0x100812d8]
mov dword [0x100812d8], edx
mov eax, dword [ebp - 0x60]
sub eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
imul ecx, eax
mov dword [ebp - 0x60], ecx
mov edx, dword [0x10081324]
mov dword [ebp - 0xa80], edx
cmp dword [ebp - 0xa80], 4
ja case.default.0x100421d1
mov eax, dword [ebp - 0xa80]
jmp dword [eax*4 + 0x10056b18]
cmp dword [ebp - 0x64], 0
je 0x100421f8
mov ecx, dword [0x10081308]
mov edx, dword [0x1008130c]
mov dword [ebp - 0xc14], ecx
mov dword [ebp - 0xc10], edx
jmp 0x1004220c
movsx eax, word [0x100812ec]
cdq
mov dword [ebp - 0xc14], eax
mov dword [ebp - 0xc10], edx
mov eax, dword [ebp - 0xc14]
mov dword [ebp - 0x64], eax
mov ecx, 2
mov word [0x100812dc], cx
jmp case.default.0x100421d1
mov edx, 8
imul eax, edx, 0x29
mov cx, word [eax + 0x1037b940]
mov word [0x100812dc], cx
cmp dword [0x100812d8], 0
je 0x10042255
mov dx, word [0x100812dc]
mov word [ebp - 0xee], dx
jmp 0x10042260
mov ax, word [ebp - 0x24]
mov word [ebp - 0xee], ax
mov cl, byte [ebp - 0xee]
mov byte [0x10081267], cl
jmp case.default.0x100421d1
movsx edx, word [0x10081354]
imul eax, edx, 0xa5c3
cdq
mov dword [0x100812e0], eax
mov dword [0x100812e4], edx
mov ax, word [0x102afee0]
mov word [0x1008132c], ax
jmp case.default.0x100421d1
movsx ecx, word [ebp - 0x30]
xor ecx, 0x3ecc
mov word [ebp - 0x20], cx
imul edx, dword [0x100812f8], 0x7e4a9b70
mov dword [ebp - 0x38], edx
jmp case.default.0x100421d1
movsx eax, byte [str._Windows::Compat::A]
cdq
mov ecx, dword [0x10081304]
push ecx
mov ecx, dword [0x10081300]
push ecx
push edx
push eax
call fcn.1005a880
mov byte [str._Windows::Compat::A], al
mov dl, byte [0x102afee0]
mov byte [0x100812cb], dl
mov eax, dword [ebp - 0x64]
mov byte [0x100812ca], al
mov ecx, dword [ebp - 0x120]
add ecx, 0x3a4
mov dword [ebp - 0x1158], ecx
mov edx, dword [ebp - 0x64]
push edx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov byte [0x1008127b], al
mov eax, dword [ebp - 0x120]
add eax, 0x5ae
mov dword [ebp - 0x10c], eax
push 0
push 0xe8
call fcn.100586d0
add esp, 8
mov dword [0x10081338], eax
mov dword [0x1008133c], edx
mov ecx, dword [0x10081378]
not ecx
movsx edx, word [ebp - 0x2c]
cmp edx, ecx
jge 0x100423e7
mov eax, dword [ebp - 0x70]
xor ecx, ecx
push ecx
push eax
push 0
push 0xba
push 0
push 0
push 0
push 0x3d
push 0
push 0
push 0
push 0x8f
call fcn.10056d50
add esp, 0x30
mov word [0x100812ec], ax
movsx edx, word [0x100812ec]
test edx, edx
jle 0x100423ca
movsx eax, byte [0x100812ba]
movsx ecx, word [ebp - 0x30]
imul ecx, eax
movsx edx, word [ebp - 0x30]
sub edx, ecx
mov word [ebp - 0x30], dx
cmp dword [ebp - 0x40], 0
je 0x100423ac
movzx eax, byte [ebp - 0x11]
mov dword [ebp - 0xacc], eax
jmp 0x100423b6
movsx ecx, word [ebp - 0x1c]
mov dword [ebp - 0xacc], ecx
mov dl, byte [ebp - 0xacc]
mov byte [ebp - 0x11], dl
mov eax, 0x678
mov word [ebp - 0x24], ax
jmp 0x100423e2
xor ecx, ecx
mov dword [ebp - 0x6c], 0x83ff
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x40]
add edx, 0x4f7c7f7c
mov dword [ebp - 0x64], edx
jmp 0x10042480
movsx eax, word [0x10081328]
movsx ecx, word [ebp - 0x18]
or ecx, eax
sub ecx, dword [ebp - 0x40]
mov dword [ebp - 0x48], ecx
movsx esi, word [ebp - 0x28]
not esi
imul esi, dword [0x10081348]
xor edi, edi
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x44]
xor ebx, ebx
push eax
push edx
push ebx
push ecx
call fcn.1005a880
add eax, esi
adc edx, edi
mov dword [ebp - 0x117c], eax
mov dword [ebp - 0x1178], edx
mov edx, dword [ebp - 0x117c]
or edx, dword [ebp - 0x1178]
jne 0x1004244f
xor eax, eax
mov dword [ebp - 0xc1c], 1
mov dword [ebp - 0xc18], eax
jmp 0x1004245a
xorps xmm0, xmm0
movlpd qword [ebp - 0xc1c], xmm0
mov ecx, dword [ebp - 0xc1c]
mov edx, dword [ebp - 0xc18]
mov dword [0x10081358], ecx
mov dword [0x1008135c], edx
movsx eax, byte [ebp - 0x12]
add eax, 0x5bda
mov byte [0x1008123e], al
mov ecx, dword [0x102afee0]
mov dword [ebp - 0x128], ecx
push 0x845ef
push 0x5e76c873
mov edx, dword [0x100812e4]
push edx
mov eax, dword [0x100812e0]
push eax
call fcn.1005a880
mov dword [ebp - 0x60], eax
movzx ecx, word [ebp - 0x24]
test ecx, ecx
jne 0x100424c1
mov edx, 1
mov word [ebp - 0xf0], dx
jmp 0x100424ca
xor eax, eax
mov word [ebp - 0xf0], ax
mov cx, word [ebp - 0xf0]
mov word [ebp - 0x28], cx
mov edx, dword [ebp - 0x128]
add edx, 0x39e
mov dword [ebp - 0x104], edx
mov dword [ebp - 4], 0
cmp dword [0x10081364], 0
je 0x1004259a
mov dword [ebp - 0x124], 0x2a
mov eax, dword [0x10081378]
xor eax, 0xe5
not eax
cdq
mov dword [0x10081368], eax
mov dword [0x1008136c], edx
movsx eax, word [ebp - 0x18]
sub eax, 0x217e90bf
mov byte [0x1008127b], al
movsx eax, word [ebp - 0x28]
cdq
mov ecx, dword [0x10081338]
mov esi, dword [0x1008133c]
add ecx, eax
adc esi, edx
mov edx, dword [0x10081338]
mov eax, dword [0x1008133c]
xor edx, ecx
xor eax, esi
mov dword [0x10081338], edx
mov dword [0x1008133c], eax
mov ecx, dword [ebp - 0x64]
imul ecx, dword [ebp - 0x54]
mov dword [ebp - 0x64], ecx
mov eax, dword [ebp - 0x38]
cdq
push 0xcc435
push 0x53073197
push edx
push eax
call fcn.1005a880
mov word [ebp - 0x18], ax
mov edx, dword [ebp - 0x124]
add edx, 1
mov dword [ebp - 0x124], edx
cmp dword [ebp - 0x124], 0x60e
jl 0x1004252b
jmp 0x100425c0
movsx eax, byte [0x100812ca]
movzx ecx, word [ebp - 0x24]
add ecx, eax
movzx edx, word [ebp - 0x24]
sub edx, ecx
mov word [ebp - 0x24], dx
movzx eax, byte [str.pcWindows::Compat::A]
sub eax, 0x5c5
mov dword [ebp - 0x60], eax
jmp 0x1004261c
mov dword [ebp - 4], 0xffffffff
jmp 0x1004262c
mov edx, dword [ebp - 0x128]
add edx, 0x404
mov dword [ebp - 0x115c], edx
cmp dword [ebp - 0x3c], 0
jne 0x10042650
mov dword [ebp - 0x2a0], 1
jmp 0x1004265a
mov dword [ebp - 0x2a0], 0
movsx eax, word [ebp - 0x18]
cmp eax, dword [ebp - 0x2a0]
jl 0x10042672
mov dword [ebp - 0x2a4], 1
jmp 0x1004267c
mov dword [ebp - 0x2a4], 0
mov ecx, dword [ebp - 0x2a4]
not ecx
test ecx, ecx
je 0x1004278b
mov dword [ebp - 4], 2
mov edx, dword [ebp - 0x50]
or edx, dword [ebp - 0x4c]
je 0x100426d3
mov eax, dword [ebp - 0x60]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x60]
cdq
sub eax, ecx
mov dword [ebp - 0x60], eax
mov edx, dword [0x100812c0]
mov eax, dword [0x100812c4]
mov dword [ebp - 0x1430], eax
mov word [ebp - 0x30], dx
movsx ecx, byte [0x1008128f]
mov edx, dword [ebp - 0x60]
sub edx, ecx
mov dword [ebp - 0x60], edx
jmp 0x10042741
mov eax, dword [ebp - 0x70]
add eax, 1
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x1184], ecx
mov dword [ebp - 0x1180], edx
mov eax, dword [ebp - 0x1184]
or eax, dword [ebp - 0x1180]
je 0x10042716
mov ecx, dword [0x10081330]
mov edx, dword [0x10081334]
mov dword [ebp - 0xa88], ecx
mov dword [ebp - 0xa84], edx
jmp 0x1004272a
movsx eax, byte [str._Windows::Compat::A]
cdq
mov dword [ebp - 0xa88], eax
mov dword [ebp - 0xa84], edx
mov eax, dword [ebp - 0xa88]
mov ecx, dword [ebp - 0xa84]
mov dword [0x10081370], eax
mov dword [0x10081374], ecx
jmp 0x10042779
mov dword [ebp - 4], 0xffffffff
jmp 0x10042789
jmp 0x100427ae
movsx ecx, word [0x1008132c]
movsx edx, word [ebp - 0x28]
imul edx, ecx
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 0x44]
add eax, dword [0x1008134c]
mov ecx, dword [ebp - 0x44]
sub ecx, eax
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x128]
add edx, 0x247
mov dword [ebp - 0x40c], edx
imul eax, dword [ebp - 0x3c], 0x89046df3
mov dword [ebp - 0x74], eax
movzx ecx, word [ebp - 0x20]
sub ecx, dword [ebp - 0x60]
mov word [ebp - 0x20], cx
movzx eax, byte [0x1008123f]
cdq
push edx
push eax
mov edx, dword [0x10081374]
push edx
mov eax, dword [0x10081370]
push eax
call fcn.1005a880
mov byte [0x10081207], al
mov ecx, dword [0x102afee0]
mov dword [ebp - 0x12c], ecx
xor edx, edx
mov dword [0x10081300], 1
mov dword [0x10081304], edx
push 0
push 0x2a745809
mov eax, dword [0x10081304]
push eax
mov ecx, dword [0x10081300]
push ecx
call fcn.1005a880
mov dword [0x10081338], eax
mov dword [0x1008133c], edx
mov ecx, dword [0x100812c0]
mov edx, dword [0x100812c4]
mov dword [ebp - 0x1434], edx
movzx eax, byte [0x100812bb]
cdq
sub eax, ecx
mov byte [0x100812bb], al
mov eax, dword [0x10081300]
mov ecx, dword [0x10081304]
mov dword [ebp - 0xa90], eax
mov dword [ebp - 0xa8c], ecx
mov edx, dword [ebp - 0xa90]
or edx, dword [ebp - 0xa8c]
je 0x10042892
cmp dword [ebp - 0xa90], 1
jne 0x10042890
cmp dword [ebp - 0xa8c], 0
je 0x100428bd
jmp 0x100428d8
mov eax, dword [ebp - 0x50]
add eax, 0x5741
mov byte [0x100812cc], al
movsx eax, byte [0x100812cb]
cdq
push 0x593a
push 0xfb6bf62f
push edx
push eax
call fcn.1005a880
mov dword [ebp - 0x38], eax
jmp 0x100428d8
mov ecx, dword [0x102afee0]
mov dword [ebp - 0x34], ecx
movzx eax, byte [0x1008127b]
cdq
sub eax, 0x6c2ad5fe
mov dword [0x10081350], eax
mov edx, dword [ebp - 0x12c]
add edx, 0x22b
mov dword [ebp - 0x1438], edx
mov ecx, 6
mov esi, str.SystemMemory
lea edi, [ebp - 0x16cc]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [ebp - 0x16cc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cdq
mov dword [0x10081368], eax
mov dword [0x1008136c], edx
mov ecx, dword [ebp - 0x12c]
add ecx, 0x3b9
mov dword [ebp - 0x1160], ecx
cmp dword [ebp - 0x74], 0
je 0x10042a18
cmp dword [ebp - 0x40], 0
je 0x10042995
xor edx, edx
mov eax, dword [ebp - 0x50]
sub eax, dword [0x100812e8]
mov ecx, dword [ebp - 0x4c]
sbb ecx, edx
or eax, dword [ebp - 0x50]
or ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
movzx edx, byte [str.pcWindows::Compat::A]
xor edx, 0x4d6d2957
movsx eax, byte [ebp - 0x12]
add eax, edx
mov byte [ebp - 0x12], al
mov ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x68]
je 0x1004297e
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x2a8], edx
jmp 0x10042987
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x2a8], eax
mov cl, byte [ebp - 0x2a8]
mov byte [ebp - 0x11], cl
jmp 0x10042a16
mov ecx, dword [0x100812f0]
mov esi, dword [0x100812f4]
movsx eax, word [ebp - 0x1c]
cdq
mov dword [ebp - 0x118c], eax
mov dword [ebp - 0x1188], edx
mov dword [ebp - 0x1194], ecx
mov dword [ebp - 0x1190], esi
mov edx, dword [ebp - 0x1188]
cmp edx, dword [ebp - 0x1190]
jl 0x10042a16
jg 0x100429dc
mov eax, dword [ebp - 0x118c]
cmp eax, dword [ebp - 0x1194]
jbe 0x10042a16
cmp dword [ebp - 0x34], 0
jne 0x10042a16
movsx ecx, word [ebp - 0x18]
mov edx, dword [ebp - 0x34]
sub edx, ecx
mov eax, dword [ebp - 0x34]
sub eax, edx
mov dword [ebp - 0x34], eax
mov ecx, 4
imul edx, ecx, 0x78
mov ax, word [edx + 0x104c86f8]
mov word [ebp - 0x20], ax
mov ecx, dword [ebp - 0x54]
add ecx, 0xce5b4ab3
mov word [0x10081328], cx
jmp 0x10042a8b
mov edx, dword [0x10081370]
or edx, dword [0x10081374]
je 0x10042a3b
mov eax, 0xe625
test eax, eax
je 0x10042a3b
mov dword [ebp - 0x2ac], 1
jmp 0x10042a45
mov dword [ebp - 0x2ac], 0
movsx ecx, byte [ebp - 0x12]
imul ecx, dword [0x100812f8]
imul ecx, dword [ebp - 0x2ac]
test ecx, ecx
je 0x10042a8b
cmp dword [ebp - 0x74], 0
jne 0x10042a6d
mov dword [ebp - 0x2b0], 1
jmp 0x10042a77
mov dword [ebp - 0x2b0], 0
mov edx, dword [ebp - 0x3c]
xor edx, dword [ebp - 0x2b0]
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0x6c]
not eax
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x12c]
add ecx, 0x4fe
mov dword [ebp - 0x143c], ecx
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x74]
jne 0x10042ab1
mov dword [ebp - 0x2b4], 1
jmp 0x10042abb
mov dword [ebp - 0x2b4], 0
cmp dword [ebp - 0x34], 0x19
jne 0x10042acd
mov dword [ebp - 0x2b8], 1
jmp 0x10042ad7
mov dword [ebp - 0x2b8], 0
mov eax, dword [ebp - 0x2b4]
cmp eax, dword [ebp - 0x2b8]
jl 0x10042baf
push 0x7e
mov ecx, dword [0x10081378]
push ecx
call fcn.10057520
add esp, 8
mov word [0x10081314], ax
movsx edx, word [0x10081314]
test edx, edx
je 0x10042bad
cmp dword [0x100812e8], 0
je 0x10042b2c
movsx eax, word [ebp - 0x30]
test eax, eax
je 0x10042b2c
mov dword [ebp - 0x2bc], 1
jmp 0x10042b36
mov dword [ebp - 0x2bc], 0
mov ecx, dword [ebp - 0x2bc]
not ecx
test ecx, ecx
jne 0x10042b51
movzx edx, word [0x100812fc]
movsx eax, word [ebp - 0x30]
cmp eax, edx
jl 0x10042bad
movsx ecx, byte [0x100812ba]
mov edx, dword [ebp - 0x44]
add edx, ecx
mov dword [ebp - 0x44], edx
movsx eax, word [ebp - 0x1c]
test eax, eax
jne 0x10042b74
mov dword [ebp - 0x2c0], 1
jmp 0x10042b7e
mov dword [ebp - 0x2c0], 0
mov ecx, dword [ebp - 0x54]
add ecx, dword [ebp - 0x48]
sub ecx, dword [ebp - 0x34]
mov esi, dword [0x10081338]
mov edx, dword [0x1008133c]
mov dword [ebp - 0x1440], edx
not esi
imul eax, dword [ebp - 0x2c0], 0x4fc71358
cdq
add eax, esi
sub eax, ecx
mov dword [ebp - 0x60], eax
jmp 0x10042c05
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x119c], eax
mov dword [ebp - 0x1198], ecx
mov edx, dword [ebp - 0x119c]
or edx, dword [ebp - 0x1198]
jne 0x10042bda
movzx eax, word [0x100812fc]
test eax, eax
jne 0x10042c05
mov cl, byte [0x100812bb]
add cl, 1
mov byte [0x100812bb], cl
movsx edx, word [ebp - 0x28]
movzx eax, byte [str.pcWindows::Compat::A]
add eax, edx
mov ecx, dword [ebp - 0x54]
add ecx, dword [ebp - 0x38]
not ecx
imul ecx, eax
mov word [ebp - 0x20], cx
mov edx, dword [0x102afee0]
mov dword [ebp - 0x130], edx
movsx eax, byte [0x100812cb]
mov ecx, dword [ebp - 0x54]
not ecx
imul ecx, eax
not ecx
mov word [ebp - 0x18], cx
mov edx, dword [ebp - 0x48]
xor eax, eax
push 0x130cb
push 0x21e88aa6
push eax
push edx
call fcn.1005a880
mov word [0x100812dc], ax
mov ecx, 0x6c
mov word [0x10081328], cx
mov edx, dword [ebp - 0x130]
add edx, 0x476
mov dword [ebp - 0x1168], edx
jmp 0x10042c76
jmp 0x10042c7f
jmp 0x10042c9a
mov eax, dword [ebp - 0x130]
add eax, 0x3a0
mov dword [ebp - 0x1444], eax
mov byte [0x10081207], 0xe4
movsx eax, byte [0x100812cb]
cdq
and eax, 0x45aeda49
mov byte [ebp - 0x11], al
movsx eax, word [ebp - 0x2c]
cdq
push 0x5d2f1
push 0x93843a1
push edx
push eax
call fcn.1005a880
mov dword [0x100812e8], eax
mov ecx, dword [ebp - 0x130]
add ecx, 0x407
mov dword [ebp - 0x116c], ecx
xor edx, edx
mov word [ebp - 0x30], dx
mov eax, 8
shl eax, 2
mov ecx, dword [eax + 0x102c0d38]
mov dword [0x10081378], ecx
mov edx, 1
imul eax, edx, 0x92f5
movzx ecx, byte [eax + 0x103344d0]
mov dword [0x100812bc], ecx
movsx edx, word [ebp - 0x30]
mov dword [ebp - 0x1144], edx
cmp dword [ebp - 0x1144], 0
je 0x10042d36
jmp 0x10042d5d
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x1448], ecx
sub eax, 0xe0c4bdb6
mov word [0x10081314], ax
movzx edx, byte [str.pcWindows::Compat::A]
imul eax, edx, 0x24ea5c44
mov dword [ebp - 0x64], eax
mov ecx, dword [0x102afee0]
mov dword [ebp - 0x134], ecx
mov ecx, 9
mov esi, str.VendorNameFromSdb
lea edi, [ebp - 0x16f0]
rep movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0x16f0]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [0x10081314], ax
mov eax, dword [ebp - 0x134]
add eax, 0x277
mov dword [ebp - 0x4d8], eax
mov dword [ebp - 0x40], 3
mov dword [ebp - 0x48], 8
mov eax, dword [ebp - 0x60]
cdq
add eax, 0x602c1cc9
mov byte [0x100812cb], al
movzx ecx, word [ebp - 0x24]
test ecx, ecx
jne 0x10042dcf
mov dword [ebp - 0x2c4], 1
jmp 0x10042dd9
mov dword [ebp - 0x2c4], 0
movzx edx, byte [0x10081267]
xor edx, dword [ebp - 0x2c4]
jne 0x10042dfc
xor eax, eax
mov dword [ebp - 0x11a4], 1
mov dword [ebp - 0x11a0], eax
jmp 0x10042e07
xorps xmm0, xmm0
movlpd qword [ebp - 0x11a4], xmm0
mov ecx, dword [0x100812c0]
mov edx, dword [0x100812c4]
mov dword [ebp - 0x144c], edx
sub ecx, dword [0x10081308]
movzx eax, word [ebp - 0x24]
cdq
mov esi, eax
or esi, ecx
movsx eax, word [ebp - 0x30]
cdq
add eax, dword [0x10081308]
or eax, dword [ebp - 0x11a4]
xor eax, esi
mov byte [0x100812cb], al
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x2c8], eax
cmp dword [ebp - 0x2c8], 3
ja case.default.0x10042e5c
mov ecx, dword [ebp - 0x2c8]
jmp dword [ecx*4 + 0x10056b2c]
xor edx, edx
mov dword [ebp - 0x6c], 1
mov dword [ebp - 0x68], edx
movsx eax, word [ebp - 0x18]
cdq
mov ecx, dword [0x10081334]
push ecx
mov ecx, dword [0x10081330]
push ecx
push edx
push eax
call fcn.1005a880
mov word [ebp - 0x18], ax
jmp case.default.0x10042e5c
mov dword [0x10081350], 0xd18a
movzx edx, word [ebp - 0x20]
imul eax, edx, 0x884345d7
movzx ecx, byte [0x1008123f]
sub ecx, eax
mov byte [0x1008123f], cl
jmp case.default.0x10042e5c
movsx edx, byte [0x100812b7]
add edx, 0xfdf0
mov dword [ebp - 0x38], edx
jmp case.default.0x10042e5c
mov eax, dword [0x100812d8]
add eax, 0x54
mov word [ebp - 0x24], ax
mov dword [ebp - 0x3c], 0xc3
mov eax, dword [ebp - 0x3c]
or eax, 0x1bf7
not eax
cdq
mov esi, eax
mov edi, edx
movzx eax, word [0x100812dc]
cdq
mov ecx, dword [0x10081304]
push ecx
mov ecx, dword [0x10081300]
push ecx
push edx
push eax
call fcn.1005a880
sub eax, esi
sbb edx, edi
movzx ecx, word [0x100812fc]
movzx esi, byte [ebp - 0x11]
not esi
imul esi, ecx
mov ecx, dword [ebp - 0x54]
not ecx
mov edi, 0x626c
sub edi, ecx
imul edi, esi
xor ecx, ecx
sub edi, eax
sbb ecx, edx
mov dword [ebp - 0x11ac], edi
mov dword [ebp - 0x11a8], ecx
mov edx, dword [ebp - 0x11ac]
or edx, dword [ebp - 0x11a8]
jne 0x10042f5f
mov eax, 1
mov word [ebp - 0xe6], ax
jmp 0x10042f68
xor ecx, ecx
mov word [ebp - 0xe6], cx
mov dx, word [ebp - 0xe6]
mov word [ebp - 0x2c], dx
mov eax, dword [ebp - 0x134]
add eax, 0x2a1
mov dword [ebp - 0x111c], eax
movsx ecx, word [ebp - 0x28]
xor ecx, 0x10
movsx edx, byte [0x1008123e]
cmp edx, ecx
jl 0x10042fa2
mov dword [ebp - 0x2d0], 1
jmp 0x10042fac
mov dword [ebp - 0x2d0], 0
mov eax, 0x1388dec1
or eax, 0x9f63
je 0x10042fcc
movsx ecx, word [ebp - 0x18]
test ecx, ecx
jne 0x10042fcc
mov dword [ebp - 0x2cc], 1
jmp 0x10042fd6
mov dword [ebp - 0x2cc], 0
mov edx, dword [ebp - 0x3c]
not edx
cmp dword [ebp - 0x2cc], edx
jg 0x10042fef
mov dword [ebp - 0x2d4], 1
jmp 0x10042ff9
mov dword [ebp - 0x2d4], 0
mov eax, dword [ebp - 0x2d0]
cmp eax, dword [ebp - 0x2d4]
jle 0x1004303d
movsx eax, byte [0x1008128f]
add eax, 0x2eed
cdq
mov ecx, dword [0x10081370]
sub ecx, eax
mov eax, dword [0x10081374]
sbb eax, edx
mov dword [0x10081370], ecx
mov dword [0x10081374], eax
movsx ecx, word [ebp - 0x30]
shl ecx, 2
mov dword [0x10081320], ecx
jmp 0x10043071
movsx edx, word [0x10081328]
test edx, edx
je 0x10043071
movzx eax, word [0x100812fc]
movzx ecx, byte [0x10081207]
sub ecx, eax
mov byte [0x10081207], cl
movzx edx, byte [ebp - 0x11]
add edx, dword [0x10081324]
movzx eax, byte [ebp - 0x11]
add eax, edx
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0x134]
add ecx, 0x316
mov dword [ebp - 0x4d4], ecx
movsx edx, byte [0x100812cb]
movzx eax, byte [str.pcWindows::Compat::A]
sub eax, edx
mov byte [str.pcWindows::Compat::A], al
mov ecx, 1
imul edx, ecx, 0xd08
mov al, byte [0x100812e8]
mov byte [edx + 0x104751a0], al
mov ecx, dword [0x102afee0]
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x138], 0
jmp 0x100430d5
mov edx, dword [ebp - 0x138]
add edx, 2
mov dword [ebp - 0x138], edx
cmp dword [ebp - 0x138], 0x376
jge 0x1004325d
movsx eax, byte [0x100812ca]
movsx ecx, byte [ebp - 0x12]
cmp ecx, eax
je 0x1004315e
movsx edx, word [ebp - 0x28]
test edx, edx
je 0x1004310e
mov eax, dword [ebp - 0x64]
mov word [0x100812c8], ax
mov byte [0x100812cb], 0xc9
jmp 0x10043159
movsx ecx, word [ebp - 0x28]
movzx edx, byte [str.pcWindows::Compat::A]
cmp edx, ecx
jge 0x10043159
movzx eax, word [ebp - 0x20]
test eax, eax
je 0x10043133
mov ecx, dword [0x10081378]
mov dword [ebp - 0x2d8], ecx
jmp 0x10043140
movzx edx, byte [0x100812bb]
mov dword [ebp - 0x2d8], edx
mov eax, dword [ebp - 0x2d8]
mov dword [ebp - 0x64], eax
movzx ecx, byte [0x100812cc]
sub ecx, 0x66462de2
mov dword [ebp - 0x64], ecx
jmp 0x1004324f
mov edx, dword [0x10081340]
mov eax, dword [0x10081344]
mov dword [ebp - 0x11b4], edx
mov dword [ebp - 0x11b0], eax
mov ecx, dword [ebp - 0x11b4]
or ecx, dword [ebp - 0x11b0]
jne 0x1004318f
mov dword [ebp - 0x2dc], 1
jmp 0x10043199
mov dword [ebp - 0x2dc], 0
cmp dword [ebp - 0x2dc], 0xffffff29
jle 0x100431b1
mov dword [ebp - 0x2e0], 1
jmp 0x100431bb
mov dword [ebp - 0x2e0], 0
mov edx, dword [0x1008134c]
cmp dword [ebp - 0x2e0], edx
jl 0x1004324f
movsx eax, word [ebp - 0x28]
sar eax, 7
mov dword [ebp - 0x3c], eax
movsx ecx, byte [0x1008123e]
test ecx, ecx
jne 0x100431ee
mov dword [ebp - 0x2e8], 1
jmp 0x100431f8
mov dword [ebp - 0x2e8], 0
mov edx, dword [ebp - 0x50]
or edx, dword [ebp - 0x4c]
jne 0x1004320c
mov dword [ebp - 0x2e4], 1
jmp 0x10043216
mov dword [ebp - 0x2e4], 0
mov eax, dword [ebp - 0x70]
not eax
xor eax, dword [ebp - 0x2e4]
movzx ecx, byte [0x1008127b]
xor ecx, dword [0x10081350]
add ecx, eax
movzx edx, word [0x100812c8]
imul eax, edx, 0x427f
mov edx, dword [ebp - 0x54]
xor edx, dword [ebp - 0x2e8]
not edx
add edx, eax
add edx, ecx
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x74]
add eax, 1
mov dword [ebp - 0x74], eax
jmp 0x100430c6
mov ecx, dword [ebp - 0x13c]
add ecx, 0x4b0
mov dword [ebp - 0xc78], ecx
push 0
push 0x7ea47c9b
mov edx, dword [0x100812d4]
push edx
mov eax, dword [0x100812d0]
push eax
call fcn.1005a880
mov ecx, eax
mov esi, edx
movzx eax, byte [str.pcWindows::Compat::A]
cdq
push esi
push ecx
push edx
push eax
call fcn.1005a880
mov byte [str.pcWindows::Compat::A], al
movsx edx, word [0x10081354]
sub edx, dword [ebp - 0x64]
mov byte [str.pcWindows::Compat::A], dl
movzx eax, byte [str.pcWindows::Compat::A]
not eax
cdq
mov ecx, eax
mov eax, dword [ebp - 0x40]
cdq
mov edx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x1450], esi
add edx, eax
sub edx, ecx
mov word [0x100812c8], dx
mov eax, dword [ebp - 0x13c]
add eax, 0x596
mov dword [ebp - 0xc80], eax
imul ecx, dword [0x10081364], 0xffffff42
test ecx, ecx
je 0x10043380
mov edx, dword [0x100812f8]
xor eax, eax
mov dword [ebp - 0x11bc], edx
mov dword [ebp - 0x11b8], eax
mov ecx, dword [ebp - 0x50]
cmp ecx, dword [ebp - 0x11bc]
jne 0x1004337e
mov edx, dword [ebp - 0x4c]
cmp edx, dword [ebp - 0x11b8]
jne 0x1004337e
mov eax, dword [str.SdbpGetTagHeadSize]
mov dword [ebp - 0x13a0], eax
mov ecx, dword [0x100677c0]
mov dword [ebp - 0x139c], ecx
mov edx, dword [0x100677c4]
mov dword [ebp - 0x1398], edx
mov eax, dword [0x100677c8]
mov dword [ebp - 0x1394], eax
mov cx, word [0x100677cc]
mov word [ebp - 0x1390], cx
mov dl, byte [0x100677ce]
mov byte [ebp - 0x138e], dl
lea eax, [ebp - 0x13a0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x3c], eax
jmp 0x100433bb
mov ecx, dword [0x10081340]
mov edx, dword [0x10081344]
mov dword [ebp - 0x11c4], ecx
mov dword [ebp - 0x11c0], edx
mov eax, dword [ebp - 0x11c4]
or eax, dword [ebp - 0x11c0]
je 0x100433bb
mov ecx, dword [ebp - 0x60]
mov edx, 2
imul eax, edx, 0xbd
mov word [eax + 0x104c88e0], cx
mov ecx, dword [ebp - 0x13c]
add ecx, 0x2d6
mov dword [ebp - 0xc7c], ecx
mov edx, dword [0x10081320]
xor eax, eax
mov dword [ebp - 0x11cc], edx
mov dword [ebp - 0x11c8], eax
mov ecx, dword [ebp - 0x11cc]
cmp ecx, dword [0x10081370]
jne 0x100433fd
mov edx, dword [ebp - 0x11c8]
cmp edx, dword [0x10081374]
je 0x10043409
mov dword [ebp - 0x2ec], 1
jmp 0x10043413
mov dword [ebp - 0x2ec], 0
movzx eax, word [ebp - 0x20]
test eax, eax
jne 0x10043427
mov dword [ebp - 0x2f0], 1
jmp 0x10043431
mov dword [ebp - 0x2f0], 0
mov ecx, dword [ebp - 0x2ec]
cmp ecx, dword [ebp - 0x2f0]
je 0x1004344f
push str.comdlg32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0x48], eax
jmp 0x10043475
movsx edx, word [ebp - 0x1c]
test edx, edx
jne 0x10043475
movsx eax, word [ebp - 0x28]
sar eax, 7
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x38]
add eax, 0x948
cdq
mov dword [0x10081330], eax
mov dword [0x10081334], edx
mov ecx, dword [0x102afee0]
mov dword [ebp - 0x140], ecx
push 0
push 0xb3
push 0
push 0
push 0
push 0
push 0
push 0x54
push 0
push 0
mov eax, dword [ebp - 0x3c]
cdq
push edx
push eax
call fcn.10056d50
add esp, 0x30
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
jge 0x100434bb
mov dword [ebp - 0x2f4], 1
jmp 0x100434c5
mov dword [ebp - 0x2f4], 0
cmp dword [ebp - 0x60], 5
jge 0x100434d7
mov dword [ebp - 0x2f8], 1
jmp 0x100434e1
mov dword [ebp - 0x2f8], 0
mov edx, dword [ebp - 0x2f4]
cmp edx, dword [ebp - 0x2f8]
jge 0x100434fb
mov dword [ebp - 0x64], 2
jmp 0x1004358a
movzx eax, word [ebp - 0x24]
test eax, eax
je 0x10043518
cmp dword [0x10081378], 0
jne 0x10043518
mov dword [ebp - 0x2fc], 1
jmp 0x10043522
mov dword [ebp - 0x2fc], 0
movsx ecx, byte [0x1008128f]
or ecx, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0x2fc]
je 0x1004358a
movsx eax, byte [str._Windows::Compat::A]
sub eax, 0xb3
cdq
mov dword [0x10081300], eax
mov dword [0x10081304], edx
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x1454], eax
mov ecx, 4
imul eax, ecx, 0x1bc8
mov dword [eax + 0x104c8c40], edx
push 0x958a9
push 0x730897f9
mov ecx, dword [0x100812d4]
push ecx
mov edx, dword [0x100812d0]
push edx
call fcn.1005a880
mov word [ebp - 0x1c], ax
mov eax, dword [ebp - 0x140]
add eax, 0x57a
mov dword [ebp - 0x9c0], eax
call dword [sym.imp.USER32.dll_GetMessagePos]
mov word [0x100812fc], ax
movzx ecx, word [0x100812fc]
test ecx, ecx
je 0x100435d2
mov dword [0x100812f8], 0x5a
movzx edx, byte [ebp - 0x11]
movsx eax, word [ebp - 0x2c]
xor eax, edx
movsx ecx, word [ebp - 0x2c]
add ecx, eax
mov word [ebp - 0x2c], cx
jmp 0x10043627
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x11d4], edx
mov dword [ebp - 0x11d0], eax
mov ecx, dword [ebp - 0x11d4]
or ecx, dword [ebp - 0x11d0]
je 0x10043627
mov edx, dword [0x100812e0]
sub edx, 1
mov eax, dword [0x100812e4]
sbb eax, 0
mov dword [0x100812e0], edx
mov dword [0x100812e4], eax
mov byte [ebp - 0x11], 4
mov ecx, 1
imul edx, ecx, 0x1763
movsx eax, byte [edx + 0x103e0e28]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x140]
add ecx, 0x59f
mov dword [ebp - 0x1458], ecx
movzx edx, byte [0x10081207]
movsx eax, word [0x10081354]
cmp eax, edx
jne 0x10043657
mov dword [ebp - 0x300], 1
jmp 0x10043661
mov dword [ebp - 0x300], 0
movsx ecx, word [0x10081354]
cmp ecx, 0x52
jne 0x10043679
mov dword [ebp - 0x304], 1
jmp 0x10043683
mov dword [ebp - 0x304], 0
mov edx, dword [ebp - 0x300]
cmp edx, dword [ebp - 0x304]
jle 0x100436ba
mov eax, dword [ebp - 0x74]
sub eax, dword [ebp - 0x40]
mov ecx, dword [0x100812bc]
sub ecx, eax
not ecx
mov dword [ebp - 0x64], ecx
movsx edx, word [ebp - 0x30]
imul eax, edx, 0xb2
cdq
mov dword [0x10081318], eax
mov dword [0x1008131c], edx
mov eax, dword [ebp - 0x140]
add eax, 0x5b9
mov dword [ebp - 0x145c], eax
mov ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x68]
je 0x10043710
movsx eax, word [ebp - 0x1c]
cdq
add eax, 0x2a90d362
mov dword [ebp - 0x54], eax
movzx eax, byte [0x10081207]
xor eax, 0x754f75ae
cdq
mov dword [0x10081330], eax
mov dword [0x10081334], edx
mov edx, 8
imul eax, edx, 0xab
mov cx, word [eax + 0x104f0230]
mov word [ebp - 0x1c], cx
jmp 0x10043754
movzx edx, byte [0x100812bb]
movsx eax, word [ebp - 0x28]
sub eax, edx
je 0x10043754
movsx eax, byte [ebp - 0x12]
cdq
push 0xd4b07
push 0xa87d5cd7
push edx
push eax
call fcn.1005a880
mov ecx, eax
movzx eax, byte [0x10081267]
cdq
sub eax, ecx
mov byte [0x10081267], al
mov dx, word [0x102afee0]
mov word [0x10081328], dx
mov eax, dword [0x102afee0]
mov dword [ebp - 0x148], eax
mov ecx, 2
mov word [0x1008132c], cx
movsx edx, word [ebp - 0x18]
mov eax, dword [ebp - 0x64]
not eax
xor eax, edx
mov ecx, dword [ebp - 0x64]
xor ecx, dword [ebp - 0x48]
imul ecx, eax
mov dword [0x100812bc], ecx
mov edx, 0xfffff0b4
mov word [ebp - 0x2c], dx
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
sub ecx, 0xfe
sbb esi, 0
movzx eax, word [0x100812dc]
cdq
push esi
push ecx
push edx
push eax
call fcn.1005a880
mov word [0x100812dc], ax
movsx edx, word [0x1008132c]
mov dword [ebp - 0x144], edx
cmp dword [ebp - 0x144], 0
je 0x100437de
cmp dword [ebp - 0x144], 1
je 0x100437f5
cmp dword [ebp - 0x144], 2
je 0x10043801
jmp 0x10043815
movsx eax, word [0x1008132c]
shl eax, 5
mov word [ebp - 0x28], ax
mov byte [str._Windows::Compat::A], 4
jmp 0x10043815
mov dword [0x100812e8], 0xc2
jmp 0x10043815
mov ecx, 0x6783
mov word [ebp - 0x24], cx
mov edx, dword [ebp - 0x40]
shl edx, 1
mov dword [0x10081364], edx
mov eax, dword [ebp - 0x148]
add eax, 0x4c2
mov dword [ebp - 0x9d4], eax
mov dword [ebp - 0x44], 0
movsx ecx, byte [0x1008128f]
imul edx, ecx, 0x22ac
mov byte [0x100812ca], dl
mov dword [ebp - 0x40], 4
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x1148], eax
cmp dword [ebp - 0x1148], 0
je 0x1004385b
jmp 0x1004388e
movsx ecx, word [ebp - 0x28]
xor ecx, dword [ebp - 0x54]
movsx edx, word [ebp - 0x28]
imul edx, ecx
mov word [ebp - 0x28], dx
movzx eax, byte [0x100812cc]
add eax, dword [0x100812e8]
not eax
movzx ecx, byte [str.pcWindows::Compat::A]
movsx edx, byte [ebp - 0x12]
add edx, ecx
sub edx, eax
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x148]
add eax, 0x238
mov dword [ebp - 0x9d8], eax
mov ecx, dword [ebp - 0x40]
push ecx
call dword [sym.imp.USER32.dll_GetTopWindow]
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x148]
add edx, 0x297
mov dword [ebp - 0x1460], edx
mov eax, dword [0x100812e8]
xor ecx, ecx
xor eax, dword [ebp - 0x6c]
xor ecx, dword [ebp - 0x68]
push ecx
push eax
mov edx, dword [ebp - 0x68]
push edx
mov eax, dword [ebp - 0x6c]
push eax
call fcn.1005a880
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov ecx, dword [0x102afee0]
mov dword [0x10081324], ecx
mov edx, dword [0x102afee0]
mov dword [ebp - 0x14c], edx
movzx eax, byte [ebp - 0x11]
add eax, 0x690d
mov ecx, dword [0x100812f8]
sub ecx, eax
mov dword [0x100812f8], ecx
mov edx, dword [0x102afee0]
xor eax, eax
mov dword [0x100812d0], edx
mov dword [0x100812d4], eax
mov ecx, dword [ebp - 0x14c]
add ecx, 0x339
mov dword [ebp - 0x264], ecx
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x308], eax
cmp dword [ebp - 0x308], 0
je 0x10043971
mov edx, dword [ebp - 0x308]
push edx
call dword [sym.imp.USER32.dll_GetMenu]
mov dword [ebp - 0x114c], eax
push 1
mov eax, dword [ebp - 0x114c]
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
mov dword [ebp - 0x1464], eax
mov ecx, dword [ebp - 0x14c]
add ecx, 0x29f
mov dword [ebp - 0xd30], ecx
xor edx, edx
mov word [ebp - 0x1c], dx
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x1468], edx
add ecx, 0x1beeae8
movzx eax, word [ebp - 0x20]
cdq
or eax, ecx
mov word [ebp - 0x20], ax
movzx eax, byte [0x10081267]
imul ecx, eax, 0x51248c62
mov byte [0x100812b7], cl
movsx edx, word [ebp - 0x1c]
mov dword [ebp - 0x1150], edx
cmp dword [ebp - 0x1150], 0
je 0x100439ce
jmp 0x100439ea
movsx eax, word [0x10081328]
add eax, dword [ebp - 0x70]
mov word [0x10081328], ax
xor ecx, ecx
mov dword [ebp - 0x5c], 4
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0x14c]
add edx, 0x322
mov dword [ebp - 0x9f0], edx
mov eax, dword [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x6c]
push ecx
push 0
push 0x37
push 0
push 0
mov edx, dword [0x100812c4]
push edx
mov eax, dword [0x100812c0]
push eax
mov ecx, dword [0x1008136c]
push ecx
mov edx, dword [0x10081368]
push edx
push 0
push 0x5e
call fcn.10056d50
add esp, 0x30
mov word [ebp - 0x20], ax
movsx eax, word [ebp - 0x1c]
test eax, eax
jne 0x10043a4b
mov dword [ebp - 0x30c], 1
jmp 0x10043a55
mov dword [ebp - 0x30c], 0
movzx ecx, word [ebp - 0x20]
cmp ecx, dword [ebp - 0x30c]
jl 0x10043a75
xor edx, edx
mov dword [ebp - 0xc24], 1
mov dword [ebp - 0xc20], edx
jmp 0x10043a80
xorps xmm0, xmm0
movlpd qword [ebp - 0xc24], xmm0
movsx eax, word [ebp - 0x30]
cdq
mov ecx, dword [ebp - 0x50]
sub ecx, eax
mov eax, dword [ebp - 0x4c]
sbb eax, edx
mov edx, dword [ebp - 0xc24]
sub edx, ecx
mov ecx, dword [ebp - 0xc20]
sbb ecx, eax
mov dword [ebp - 0x11dc], edx
mov dword [ebp - 0x11d8], ecx
mov edx, dword [ebp - 0x11dc]
or edx, dword [ebp - 0x11d8]
je 0x10043acc
mov eax, dword [0x102afee0]
mov dword [0x10081350], eax
movzx ecx, word [ebp - 0x20]
mov dword [ebp - 0x44], ecx
jmp 0x10043b06
mov dword [0x10081310], 4
movsx edx, word [ebp - 0x18]
test edx, edx
jne 0x10043aea
mov dword [ebp - 0x310], 1
jmp 0x10043af4
mov dword [ebp - 0x310], 0
movsx eax, word [ebp - 0x1c]
mov ecx, dword [ebp - 0x310]
sub ecx, eax
mov byte [0x100812ba], cl
mov edx, dword [0x102afee0]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0x70]
xor ecx, ecx
mov dword [ebp - 0x11e4], eax
mov dword [ebp - 0x11e0], ecx
mov edx, dword [ebp - 0x11e0]
cmp edx, dword [0x100812e4]
jg 0x10043b5e
jl 0x10043b41
mov eax, dword [ebp - 0x11e4]
cmp eax, dword [0x100812e0]
ja 0x10043b5e
jmp 0x10043b52
jmp 0x10043b59
jmp 0x10043bf0
movzx eax, word [ebp - 0x20]
cdq
mov dword [ebp - 0x11ec], eax
mov dword [ebp - 0x11e8], edx
mov ecx, dword [ebp - 0x11ec]
cmp ecx, dword [ebp - 0x6c]
jne 0x10043b85
mov edx, dword [ebp - 0x11e8]
cmp edx, dword [ebp - 0x68]
je 0x10043b91
mov dword [ebp - 0x314], 1
jmp 0x10043b9b
mov dword [ebp - 0x314], 0
movsx eax, byte [0x100812b7]
movzx ecx, byte [ebp - 0x11]
cmp ecx, eax
jle 0x10043bb6
mov dword [ebp - 0x318], 1
jmp 0x10043bc0
mov dword [ebp - 0x318], 0
mov edx, dword [ebp - 0x314]
cmp edx, dword [ebp - 0x318]
jl 0x10043bf0
movzx eax, byte [0x10081207]
xor eax, 0x4f57
cdq
mov dword [0x100812c0], eax
mov dword [0x100812c4], edx
mov ax, word [0x102afee0]
mov word [ebp - 0x20], ax
mov ecx, dword [ebp - 0x150]
add ecx, 0x2b4
mov dword [ebp - 0xf8], ecx
cmp dword [0x10081348], 0
je 0x10043c16
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x31c], edx
jmp 0x10043c1f
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x31c], eax
mov cx, word [ebp - 0x31c]
mov word [0x10081328], cx
mov dx, word [ebp - 0x20]
sub dx, 1
mov word [ebp - 0x20], dx
mov eax, dword [ebp - 0x150]
add eax, 0x282
mov dword [ebp - 0xd3c], eax
mov ecx, dword [0x100812f8]
cmp ecx, dword [0x10081360]
jb 0x10043d0e
movzx eax, word [0x100812dc]
cdq
mov dword [ebp - 0x11f4], eax
mov dword [ebp - 0x11f0], edx
mov edx, dword [0x1008130c]
cmp edx, dword [ebp - 0x11f0]
jb 0x10043c99
ja 0x10043c8d
mov eax, dword [0x10081308]
cmp eax, dword [ebp - 0x11f4]
jb 0x10043c99
mov dword [ebp - 0x320], 1
jmp 0x10043ca3
mov dword [ebp - 0x320], 0
cmp dword [0x1008130c], 0
ja 0x10043cb5
cmp dword [0x10081308], 0x1c
jb 0x10043cc1
mov dword [ebp - 0x324], 1
jmp 0x10043ccb
mov dword [ebp - 0x324], 0
mov ecx, dword [ebp - 0x320]
cmp ecx, dword [ebp - 0x324]
jge 0x10043ceb
movsx edx, word [ebp - 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov byte [0x10081267], al
jmp 0x10043d09
movzx eax, byte [str.pcWindows::Compat::A]
mov ecx, dword [ebp - 0x34]
sub ecx, eax
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x34]
sub edx, 0x677324b6
mov dword [0x10081348], edx
jmp 0x10043e30
cmp dword [0x10081350], 0
je 0x10043d3d
mov eax, dword [ebp - 0x34]
sub eax, 0x6ee073d3
mov dword [0x100812bc], eax
movsx ecx, word [ebp - 0x2c]
movzx edx, word [ebp - 0x24]
sub edx, ecx
movzx eax, word [ebp - 0x24]
sub eax, edx
mov word [ebp - 0x24], ax
jmp 0x10043e30
movsx eax, word [0x10081314]
not eax
cdq
mov ecx, dword [0x10081370]
not ecx
mov esi, dword [0x10081374]
not esi
mov dword [ebp - 0x11fc], ecx
mov dword [ebp - 0x11f8], esi
mov dword [ebp - 0x1204], eax
mov dword [ebp - 0x1200], edx
mov edx, dword [ebp - 0x11f8]
cmp edx, dword [ebp - 0x1200]
jb 0x10043d99
ja 0x10043d8d
mov eax, dword [ebp - 0x11fc]
cmp eax, dword [ebp - 0x1204]
jbe 0x10043d99
mov dword [ebp - 0x328], 1
jmp 0x10043da3
mov dword [ebp - 0x328], 0
mov ecx, dword [ebp - 0x328]
not ecx
mov edx, dword [0x1008134c]
not edx
cmp edx, ecx
jl 0x10043dee
mov eax, dword [0x10081338]
mov ecx, dword [0x1008133c]
xor eax, dword [0x10081330]
xor ecx, dword [0x10081334]
mov dword [0x10081330], eax
mov dword [0x10081334], ecx
mov edx, dword [0x102afee0]
xor eax, eax
mov dword [0x10081370], edx
mov dword [0x10081374], eax
jmp 0x10043e30
mov ecx, 0xffffaa2f
test ecx, ecx
je 0x10043e30
mov edx, dword [0x10081338]
mov eax, dword [0x1008133c]
mov dword [ebp - 0x146c], eax
add edx, 0x37c9
mov dword [ebp - 0x40], edx
mov ecx, dword [0x100812f0]
mov edx, dword [0x100812f4]
mov dword [ebp - 0x1470], edx
add ecx, 0xfa864763
mov word [0x1008132c], cx
mov eax, dword [ebp - 0x150]
add eax, 0x4e3
mov dword [ebp - 0xa40], eax
movsx ecx, word [ebp - 0x18]
test ecx, ecx
je 0x10043faf
movsx edx, word [0x1008132c]
cmp edx, 0x72
jle 0x10043e65
mov dword [ebp - 0x32c], 1
jmp 0x10043e6f
mov dword [ebp - 0x32c], 0
movsx eax, word [ebp - 0x18]
not eax
movzx ecx, byte [ebp - 0x11]
cmp ecx, eax
je 0x10043e89
mov dword [ebp - 0x330], 1
jmp 0x10043e93
mov dword [ebp - 0x330], 0
mov edx, dword [ebp - 0x32c]
cmp edx, dword [ebp - 0x330]
jl 0x10043ead
mov dword [ebp - 0x33c], 1
jmp 0x10043eb7
mov dword [ebp - 0x33c], 0
mov eax, dword [0x10081330]
or eax, dword [0x10081334]
jne 0x10043ed0
mov dword [ebp - 0x334], 1
jmp 0x10043eda
mov dword [ebp - 0x334], 0
mov ecx, dword [0x10081320]
not ecx
cmp dword [ebp - 0x334], ecx
jne 0x10043ef6
mov dword [ebp - 0x338], 1
jmp 0x10043f00
mov dword [ebp - 0x338], 0
mov edx, dword [0x10081310]
cmp edx, dword [ebp - 0x338]
ja 0x10043f1a
mov dword [ebp - 0x340], 1
jmp 0x10043f24
mov dword [ebp - 0x340], 0
mov eax, dword [ebp - 0x33c]
cmp eax, dword [ebp - 0x340]
jl 0x10043f58
mov eax, dword [ebp - 0x38]
cdq
push 0x59d01
push 0x70266080
push edx
push eax
call fcn.1005a880
mov dword [ebp - 0x3c], eax
mov cl, byte [0x10081324]
mov byte [0x100812ca], cl
jmp 0x10043fad
mov edx, dword [ebp - 0x6c]
or edx, dword [ebp - 0x68]
jne 0x10043f74
xor eax, eax
mov dword [ebp - 0xc2c], 1
mov dword [ebp - 0xc28], eax
jmp 0x10043f7f
xorps xmm0, xmm0
movlpd qword [ebp - 0xc2c], xmm0
mov ecx, dword [ebp - 0xc2c]
cmp ecx, dword [ebp - 0x50]
jne 0x10043f95
mov edx, dword [ebp - 0xc28]
cmp edx, dword [ebp - 0x4c]
je 0x10043fad
mov eax, dword [0x10081348]
add eax, 1
mov dword [0x10081348], eax
mov cx, word [0x102afee0]
mov word [ebp - 0x30], cx
jmp 0x10043fdd
cmp dword [ebp - 0x40], 0
je 0x10043fdd
mov edx, dword [0x10081338]
mov eax, dword [0x1008133c]
mov dword [ebp - 0x1474], eax
add edx, 0x27ed38b8
mov word [ebp - 0x2c], dx
mov ecx, dword [ebp - 0x34]
add ecx, 0xd2
mov word [ebp - 0x24], cx
mov dword [ebp - 0x78], 0
xor edx, edx
mov byte [ebp - 0xa9], dl
push 0
push 0
push 0
lea eax, [ebp - 0x1802]
push eax
lea ecx, [ebp - 0xa9]
call fcn.10041920
mov ecx, eax
call fcn.10031da0
push eax
call fcn.100417a0
add esp, 8
call eax
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x48]
not ecx
movzx edx, byte [str.pcWindows::Compat::A]
xor edx, ecx
mov byte [ebp - 0x11], dl
movsx eax, byte [0x1008128f]
imul ecx, eax, 0xb7534712
xor edx, edx
mov dword [0x10081358], ecx
mov dword [0x1008135c], edx
cmp dword [ebp - 0x78], 0
jl 0x10044055
cmp dword [ebp - 0x78], 1
jne 0x100442cd
mov ax, word [0x102afee0]
mov word [ebp - 0x28], ax
movsx eax, byte [ebp - 0x12]
cdq
mov ecx, eax
add ecx, 0x89fff883
movsx eax, word [ebp - 0x28]
cdq
add eax, ecx
mov word [ebp - 0x28], ax
movsx edx, word [0x10081314]
imul eax, edx, 0x6c1d
movzx ecx, word [ebp - 0x24]
sub ecx, eax
mov word [ebp - 0x24], cx
mov dword [ebp - 0x154], 0
jmp 0x100440a9
mov edx, dword [ebp - 0x154]
add edx, 2
mov dword [ebp - 0x154], edx
cmp dword [ebp - 0x154], 0x35a
jge 0x100442c6
mov eax, 0x6bd1
test eax, eax
je 0x100440e0
movzx ecx, word [ebp - 0x24]
not ecx
test ecx, ecx
je 0x100440e0
xor edx, edx
mov dword [ebp - 0xc34], 1
mov dword [ebp - 0xc30], edx
jmp 0x100440eb
xorps xmm0, xmm0
movlpd qword [ebp - 0xc34], xmm0
movsx eax, byte [str._Windows::Compat::A]
movsx ecx, byte [ebp - 0x12]
cmp ecx, eax
jge 0x10044106
mov dword [ebp - 0x344], 1
jmp 0x10044110
mov dword [ebp - 0x344], 0
movsx edx, word [ebp - 0x2c]
cmp edx, 0x630b7bcc
jle 0x10044128
mov dword [ebp - 0x348], 1
jmp 0x10044132
mov dword [ebp - 0x348], 0
mov eax, dword [ebp - 0x344]
xor eax, dword [ebp - 0x348]
jne 0x10044154
xor ecx, ecx
mov dword [ebp - 0xc3c], 1
mov dword [ebp - 0xc38], ecx
jmp 0x1004415f
xorps xmm0, xmm0
movlpd qword [ebp - 0xc3c], xmm0
mov edx, 0x251a21cc
sub edx, dword [ebp - 0xc34]
mov eax, 0xfff4e76e
sbb eax, dword [ebp - 0xc30]
mov ecx, dword [ebp - 0xc38]
push ecx
mov ecx, dword [ebp - 0xc3c]
push ecx
push eax
push edx
call fcn.1005a880
mov dword [ebp - 0x120c], eax
mov dword [ebp - 0x1208], edx
mov edx, dword [ebp - 0x120c]
or edx, dword [ebp - 0x1208]
je 0x1004426c
mov dword [ebp - 0x60], 2
movsx eax, word [ebp - 0x30]
sub eax, dword [ebp - 0x64]
mov word [ebp - 0x30], ax
mov ecx, dword [ebp - 0x60]
sub ecx, 0x5f5a
mov word [ebp - 0x28], cx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x158], edx
cmp dword [ebp - 0x158], 0
je 0x100441ed
cmp dword [ebp - 0x158], 1
je 0x1004421a
cmp dword [ebp - 0x158], 2
je 0x10044258
jmp 0x1004426a
movsx eax, byte [0x1008123e]
movsx ecx, word [0x100812ec]
imul ecx, eax
mov dx, word [0x100812ec]
shl dx, cl
mov word [0x100812ec], dx
mov eax, 0x57d2
mov word [ebp - 0x18], ax
jmp 0x1004426a
movzx ecx, byte [0x1008123f]
not ecx
movsx edx, word [ebp - 0x1c]
or edx, ecx
movsx eax, byte [0x100812b7]
movsx ecx, word [0x1008132c]
not ecx
imul ecx, eax
movzx eax, word [0x100812c8]
not eax
movsx esi, byte [0x100812b7]
sub esi, eax
imul esi, ecx
and esi, edx
mov dword [ebp - 0x34], esi
jmp 0x1004426a
mov ecx, 0xffffc4d1
mov word [ebp - 0x28], cx
mov dl, byte [ebp - 0x12]
add dl, 1
mov byte [ebp - 0x12], dl
jmp 0x100442b5
movsx eax, byte [ebp - 0x12]
test eax, eax
je 0x100442b5
mov eax, dword [ebp - 0x38]
cdq
mov ecx, dword [0x10081340]
mov edx, dword [0x10081344]
mov dword [ebp - 0x1478], edx
sub ecx, eax
mov eax, dword [0x10081330]
not eax
add eax, 0x77
sub eax, ecx
mov dword [0x100812e8], eax
movsx ecx, word [ebp - 0x18]
mov edx, dword [0x10081310]
sub edx, dword [ebp - 0x44]
sub edx, ecx
add edx, dword [ebp - 0x70]
mov dword [0x10081320], edx
mov al, byte [0x100812ba]
add al, 1
mov byte [0x100812ba], al
jmp 0x1004409a
xor al, al
jmp 0x10056b06
movsx ecx, word [ebp - 0x1c]
add ecx, dword [0x10081320]
imul ecx, dword [0x10081320]
mov dword [0x10081320], ecx
mov edx, dword [ebp - 0x64]
shr edx, 4
xor eax, eax
mov dword [0x100812d0], edx
mov dword [0x100812d4], eax
cmp dword [0x100812e8], 0
jne 0x10044314
xor ecx, ecx
mov dword [ebp - 0xc44], 1
mov dword [ebp - 0xc40], ecx
jmp 0x1004431f
xorps xmm0, xmm0
movlpd qword [ebp - 0xc44], xmm0
mov edx, 0xdf8c1676
sub edx, dword [ebp - 0xc44]
mov eax, 0x4ecdf
sbb eax, dword [ebp - 0xc40]
mov dword [ebp - 0x1214], edx
mov dword [ebp - 0x1210], eax
mov ecx, dword [ebp - 0x1214]
or ecx, dword [ebp - 0x1210]
jne 0x1004435b
mov dword [ebp - 0x350], 1
jmp 0x10044365
mov dword [ebp - 0x350], 0
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x121c], edx
mov dword [ebp - 0x1218], eax
mov ecx, dword [ebp - 0x121c]
or ecx, dword [ebp - 0x1218]
jne 0x10044391
mov dword [ebp - 0x354], 1
jmp 0x1004439b
mov dword [ebp - 0x354], 0
mov edx, dword [ebp - 0x50]
or edx, dword [ebp - 0x4c]
jne 0x100443af
mov dword [ebp - 0x34c], 1
jmp 0x100443b9
mov dword [ebp - 0x34c], 0
movzx eax, byte [0x10081207]
imul eax, dword [ebp - 0x34c]
test eax, eax
jne 0x100443df
xor ecx, ecx
mov dword [ebp - 0xc4c], 1
mov dword [ebp - 0xc48], ecx
jmp 0x100443ea
xorps xmm0, xmm0
movlpd qword [ebp - 0xc4c], xmm0
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
movsx eax, word [ebp - 0x1c]
cdq
mov edi, eax
mov ebx, edx
add edi, ecx
adc ebx, esi
add edi, dword [ebp - 0xc4c]
adc ebx, dword [ebp - 0xc48]
not edi
not ebx
mov eax, dword [ebp - 0x350]
imul eax, dword [ebp - 0x354]
cdq
xor eax, edi
xor edx, ebx
mov dword [0x100812f0], eax
mov dword [0x100812f4], edx
mov dword [ebp - 0xa4], 0
movsx edx, word [ebp - 0x30]
add edx, dword [ebp - 0x70]
movsx eax, word [ebp - 0x30]
xor eax, edx
mov word [ebp - 0x30], ax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
push 0
push 0x4823
push edx
push ecx
call fcn.1005a880
mov ecx, dword [ebp - 0x34]
sub ecx, eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0xc4], 0
movzx edx, word [0x100812c8]
sub edx, 0xa1
mov byte [0x100812ba], dl
movzx eax, word [ebp - 0x24]
imul eax, dword [0x10081350]
mov word [ebp - 0x24], ax
movsx ecx, word [ebp - 0x30]
test ecx, ecx
jne 0x100444a1
mov dword [ebp - 0x358], 1
jmp 0x100444ab
mov dword [ebp - 0x358], 0
movsx edx, word [ebp - 0x30]
xor edx, dword [ebp - 0x40]
mov eax, dword [0x100812e8]
xor eax, dword [0x10081378]
add eax, edx
jne 0x100444cd
mov dword [ebp - 0x35c], 1
jmp 0x100444d7
mov dword [ebp - 0x35c], 0
movzx ecx, word [0x100812fc]
not ecx
mov edx, dword [ebp - 0x358]
xor edx, dword [ebp - 0x3c]
sub edx, ecx
xor edx, dword [ebp - 0x35c]
mov byte [0x10081207], dl
mov dword [ebp - 0x98], 0
movsx eax, word [ebp - 0x18]
not eax
mov ecx, dword [ebp - 0x40]
xor ecx, eax
not ecx
mov eax, dword [ebp - 0x40]
not eax
add eax, ecx
cdq
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
or ecx, eax
or esi, edx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0xd4], 0
push 0
push 0
mov edx, dword [ebp - 0x70]
xor eax, eax
push eax
push edx
push 0
push 0x55
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.1005a070
add esp, 0x30
mov byte [0x100812ba], al
movsx ecx, byte [0x100812ba]
test ecx, ecx
jg 0x1004456f
mov dword [ebp - 0x360], 1
jmp 0x10044579
mov dword [ebp - 0x360], 0
movsx edx, byte [0x100812ba]
cmp edx, 0x3e
jg 0x10044591
mov dword [ebp - 0x364], 1
jmp 0x1004459b
mov dword [ebp - 0x364], 0
mov eax, dword [ebp - 0x360]
cmp eax, dword [ebp - 0x364]
je 0x10044637
mov dword [ebp - 4], 4
movzx eax, byte [ebp - 0x11]
cdq
xor eax, 0x18f8ed6a
mov byte [ebp - 0x11], al
mov cl, byte [0x100812bb]
add cl, 1
mov byte [0x100812bb], cl
movzx edx, word [0x100812dc]
movsx eax, byte [str._Windows::Compat::A]
sub eax, edx
mov byte [str._Windows::Compat::A], al
jmp 0x10044625
mov dword [ebp - 4], 0xffffffff
jmp 0x10044635
jmp 0x1004466a
movzx eax, byte [ebp - 0x11]
movsx ecx, word [ebp - 0x2c]
add ecx, eax
je 0x1004466a
cmp dword [ebp - 0x38], 0
je 0x1004466a
mov dword [ebp - 0x60], 0xb7987765
movsx edx, word [0x10081328]
add edx, 0x34
mov dword [0x100812bc], edx
mov eax, dword [ebp - 0x6c]
add eax, 0x66
mov word [ebp - 0x24], ax
mov dword [ebp - 0x9c], 0
mov ecx, dword [0x10081350]
cmp dword [0x10081364], ecx
jg 0x100446bf
mov edx, dword [ebp - 0x48]
add edx, 1
mov dword [ebp - 0x48], edx
xor eax, eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
sub ecx, dword [0x10081310]
sbb edx, eax
mov eax, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
sub eax, ecx
sbb esi, edx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], esi
mov ecx, 8
imul edx, ecx, 0x7d3f
mov eax, dword [edx + 0x103f5c30]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0xd8], 0
mov ecx, dword [ebp - 0x40]
cmp ecx, dword [ebp - 0x44]
jb 0x10044861
push 0
push 0x5c
push 0
push 0
push 0
push 0
movzx eax, byte [0x100812cc]
cdq
push edx
push eax
push 0
push 0x22
push 0
push 0x94
call fcn.10056d50
add esp, 0x30
mov byte [str._Windows::Compat::A], al
movsx edx, byte [str._Windows::Compat::A]
test edx, edx
jge 0x10044837
xorps xmm0, xmm0
movlpd qword [0x10081368], xmm0
cmp dword [0x10081364], 0
jne 0x10044732
mov dword [ebp - 0x368], 1
jmp 0x1004473c
mov dword [ebp - 0x368], 0
movsx eax, word [ebp - 0x1c]
movsx ecx, byte [0x100812b7]
and ecx, eax
imul edx, dword [ebp - 0x368], 0xaf
add edx, ecx
mov byte [str.pcWindows::Compat::A], dl
cmp dword [0x100812f8], 0
jne 0x10044770
mov dword [ebp - 0x36c], 1
jmp 0x1004477a
mov dword [ebp - 0x36c], 0
movsx eax, word [0x1008132c]
not eax
movzx ecx, byte [ebp - 0x11]
or eax, ecx
cdq
mov esi, eax
mov edi, edx
xor edx, edx
mov eax, 0x64cc7522
sub eax, dword [0x10081324]
mov ecx, 0x21619
sbb ecx, edx
mov edx, dword [0x10081324]
add edx, dword [ebp - 0x36c]
xor ebx, ebx
push ecx
push eax
push ebx
push edx
call fcn.1005a880
push edi
push esi
push edx
push eax
call fcn.1005a880
mov dword [0x10081368], eax
mov dword [0x1008136c], edx
mov eax, dword [0x10081368]
mov ecx, dword [0x1008136c]
mov dword [ebp - 0x1224], eax
mov dword [ebp - 0x1220], ecx
mov edx, dword [ebp - 0x1224]
or edx, dword [ebp - 0x1220]
je 0x100447f4
jmp 0x10044835
movsx eax, byte [str._Windows::Compat::A]
sub eax, 0x58447dad
mov word [0x10081328], ax
mov ecx, 2
imul edx, ecx, 0x42
movsx eax, word [edx + 0x1048cee8]
mov ecx, dword [0x10081310]
sub ecx, eax
mov dword [0x10081310], ecx
movsx eax, word [0x10081354]
cdq
sub eax, 0x6cbb21bf
mov byte [0x100812b7], al
jmp 0x1004485c
mov edx, dword [ebp - 0x34]
xor eax, eax
push eax
push edx
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x50]
push edx
call fcn.1005a880
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov eax, dword [0x10081350]
xor eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
jmp 0x100449a8
mov ecx, dword [0x100812f0]
mov esi, dword [0x100812f4]
movzx eax, byte [str.pcWindows::Compat::A]
cdq
mov dword [ebp - 0x122c], eax
mov dword [ebp - 0x1228], edx
mov dword [ebp - 0x1234], ecx
mov dword [ebp - 0x1230], esi
mov edx, dword [ebp - 0x1228]
cmp edx, dword [ebp - 0x1230]
jl 0x100448b7
jg 0x100448ab
mov eax, dword [ebp - 0x122c]
cmp eax, dword [ebp - 0x1234]
jbe 0x100448b7
mov dword [ebp - 0x370], 1
jmp 0x100448c1
mov dword [ebp - 0x370], 0
cmp dword [ebp - 0x370], 0xef568ad5
jb 0x100448d9
mov dword [ebp - 0x374], 1
jmp 0x100448e3
mov dword [ebp - 0x374], 0
mov ecx, dword [ebp - 0x374]
not ecx
test ecx, ecx
je 0x10044973
mov edx, dword [0x102afee0]
mov dword [ebp - 0x38], edx
movzx eax, word [0x100812dc]
not eax
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x60]
cdq
mov edi, dword [0x10081340]
mov ebx, dword [0x10081344]
sub edi, eax
sbb ebx, edx
push esi
push ecx
push ebx
push edi
call fcn.1005a880
mov dword [ebp - 0x123c], eax
mov dword [ebp - 0x1238], edx
mov edx, dword [ebp - 0x123c]
or edx, dword [ebp - 0x1238]
jne 0x1004494d
mov dword [ebp - 0x378], 1
jmp 0x10044957
mov dword [ebp - 0x378], 0
movsx eax, byte [0x100812cb]
imul eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x378]
sub ecx, eax
mov word [0x100812fc], cx
jmp 0x100449a8
cmp dword [0x10081350], 0x75
je 0x100449a8
mov ecx, dword [ebp - 0x50]
add ecx, 0x3a1f95b0
movzx eax, word [0x100812dc]
cdq
sub eax, ecx
mov word [0x100812dc], ax
movzx edx, byte [0x100812bb]
add edx, 0x2987
mov dword [0x10081320], edx
mov dword [ebp - 0xa0], 0
movzx eax, byte [0x10081207]
movsx ecx, byte [0x1008123e]
not ecx
movzx edx, byte [0x100812bb]
add edx, ecx
not edx
add eax, edx
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
cmp dword [0x1008134c], 0
jne 0x100449eb
mov dword [ebp - 0x37c], 1
jmp 0x100449f5
mov dword [ebp - 0x37c], 0
movsx eax, word [ebp - 0x28]
xor eax, dword [0x10081364]
sub eax, dword [ebp - 0x37c]
cdq
mov ecx, eax
mov esi, edx
movsx edx, word [ebp - 0x2c]
mov eax, edx
imul eax, dword [0x100812d8]
cdq
mov edi, dword [0x10081344]
mov ebx, dword [ebp - 0x54]
mov dword [ebp - 0x1154], esi
xor esi, esi
sub ebx, dword [0x10081340]
sbb esi, edi
not ebx
not esi
sub ebx, eax
sbb esi, edx
and ebx, ecx
mov ecx, dword [ebp - 0x1154]
and esi, ecx
mov dword [ebp - 0x1244], ebx
mov dword [ebp - 0x1240], esi
mov edx, dword [ebp - 0x1244]
or edx, dword [ebp - 0x1240]
jne 0x10044a69
mov dword [ebp - 0x380], 1
jmp 0x10044a73
mov dword [ebp - 0x380], 0
mov eax, dword [ebp - 0x380]
mov dword [0x100812bc], eax
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0x15c], 0
jmp 0x10044aa3
mov ecx, dword [ebp - 0x15c]
add ecx, 2
mov dword [ebp - 0x15c], ecx
cmp dword [ebp - 0x15c], 0x261
jge 0x10044b85
cmp dword [ebp - 0x38], 0
je 0x10044aee
xor edx, edx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
sub eax, dword [ebp - 0x34]
sbb ecx, edx
mov edx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
sub edx, eax
sbb esi, ecx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], esi
movzx eax, word [0x100812dc]
xor eax, 0x7f929bd9
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
jmp 0x10044b73
mov eax, dword [ebp - 0x50]
not eax
mov ecx, dword [ebp - 0x4c]
not ecx
mov dword [ebp - 0x124c], eax
mov dword [ebp - 0x1248], ecx
mov edx, dword [ebp - 0x124c]
or edx, dword [ebp - 0x1248]
je 0x10044b73
mov ecx, dword [0x100812f0]
mov edx, dword [0x100812f4]
mov dword [ebp - 0x147c], edx
mov eax, dword [ebp - 0x60]
cdq
mov esi, eax
add esi, ecx
mov eax, dword [ebp - 0x60]
cdq
sub eax, esi
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x40]
cdq
mov ecx, eax
sub ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
cdq
sub eax, ecx
mov dword [ebp - 0x40], eax
cmp dword [0x10081324], 0
jne 0x10044b5c
mov dword [ebp - 0x384], 1
jmp 0x10044b66
mov dword [ebp - 0x384], 0
mov edx, dword [ebp - 0x34]
imul edx, dword [ebp - 0x384]
mov dword [ebp - 0x48], edx
mov eax, dword [0x100812f8]
add eax, 1
mov dword [0x100812f8], eax
jmp 0x10044a94
mov dword [ebp - 0xcc], 0
push 0
push 0
push 0
push 0x71
push 0
push 0
push 0
push 0xed
push 0
push 0x24
call fcn.10059bf0
add esp, 0x28
mov dword [0x10081318], eax
mov dword [0x1008131c], edx
movsx ecx, byte [0x1008128f]
test ecx, ecx
je 0x10044bd6
cmp dword [ebp - 0x38], 0
je 0x10044bd6
mov dword [ebp - 0x388], 0
jmp 0x10044be0
mov dword [ebp - 0x388], 1
movsx edx, byte [str._Windows::Compat::A]
cmp dword [ebp - 0x34], edx
je 0x10044bf8
mov dword [ebp - 0x38c], 1
jmp 0x10044c02
mov dword [ebp - 0x38c], 0
mov eax, dword [ebp - 0x388]
cmp eax, dword [ebp - 0x38c]
jg 0x10044c1c
mov dword [ebp - 0x394], 1
jmp 0x10044c26
mov dword [ebp - 0x394], 0
movsx ecx, word [ebp - 0x28]
movzx edx, word [0x100812dc]
cmp edx, ecx
jl 0x10044c41
mov dword [ebp - 0x390], 1
jmp 0x10044c4b
mov dword [ebp - 0x390], 0
movzx eax, word [0x100812dc]
cmp eax, dword [ebp - 0x390]
jge 0x10044c66
mov dword [ebp - 0x398], 1
jmp 0x10044c70
mov dword [ebp - 0x398], 0
mov ecx, dword [ebp - 0x394]
cmp ecx, dword [ebp - 0x398]
je 0x10044e0f
mov edx, dword [0x10081338]
mov eax, dword [0x1008133c]
mov dword [ebp - 0x1254], edx
mov dword [ebp - 0x1250], eax
mov ecx, dword [ebp - 0x1254]
or ecx, dword [ebp - 0x1250]
je 0x10044d34
mov edx, dword [ebp - 0x50]
or edx, dword [ebp - 0x4c]
jne 0x10044cbf
mov dword [ebp - 0x39c], 1
jmp 0x10044cc9
mov dword [ebp - 0x39c], 0
movzx eax, word [ebp - 0x20]
test eax, eax
jne 0x10044cdd
mov dword [ebp - 0x3a0], 1
jmp 0x10044ce7
mov dword [ebp - 0x3a0], 0
mov eax, dword [ebp - 0x39c]
add eax, dword [ebp - 0x3a0]
cdq
mov dword [0x10081340], eax
mov dword [0x10081344], edx
movsx eax, word [ebp - 0x18]
cdq
mov dword [0x10081338], eax
mov dword [0x1008133c], edx
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
movsx eax, byte [ebp - 0x12]
cdq
push esi
push ecx
push edx
push eax
call fcn.1005a880
mov ecx, eax
movsx eax, byte [ebp - 0x12]
cdq
add eax, ecx
mov byte [ebp - 0x12], al
jmp 0x10044e0d
cmp dword [ebp - 0x40], 0
je 0x10044d79
cmp dword [ebp - 0x34], 0
je 0x10044d4b
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x3a4], edx
jmp 0x10044d56
mov eax, dword [0x1008134c]
mov dword [ebp - 0x3a4], eax
mov cx, word [ebp - 0x3a4]
mov word [0x1008132c], cx
movzx eax, byte [ebp - 0x11]
cdq
sub eax, 0x6d0cdd4
mov word [0x100812c8], ax
jmp 0x10044e0d
cmp dword [0x10081350], 0
je 0x10044da3
mov edx, dword [0x10081310]
shl edx, 4
mov word [0x100812ec], dx
mov eax, dword [0x10081330]
add eax, 0x7b684752
not eax
mov byte [ebp - 0x11], al
jmp 0x10044e0d
movsx ecx, word [ebp - 0x18]
not ecx
test ecx, ecx
je 0x10044e0d
movsx edx, byte [ebp - 0x12]
test edx, edx
je 0x10044dc0
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x3a8], eax
jmp 0x10044dcd
movzx ecx, byte [0x100812cc]
mov dword [ebp - 0x3a8], ecx
mov dx, word [ebp - 0x3a8]
mov word [ebp - 0x24], dx
mov eax, dword [0x10081300]
or eax, dword [0x10081304]
jne 0x10044df1
mov dword [ebp - 0x3ac], 1
jmp 0x10044dfb
mov dword [ebp - 0x3ac], 0
movsx ecx, word [ebp - 0x30]
imul ecx, dword [ebp - 0x48]
sub ecx, dword [ebp - 0x3ac]
mov word [ebp - 0x30], cx
jmp 0x10044e55
mov byte [0x100812ca], 8
mov edx, dword [0x10081330]
sub edx, 0x5d98a6ce
mov dword [ebp - 0x44], edx
mov eax, dword [0x10081378]
cdq
mov ecx, dword [0x100812c0]
mov esi, dword [0x100812c4]
add ecx, eax
adc esi, edx
mov edx, dword [0x100812c0]
mov eax, dword [0x100812c4]
add edx, ecx
adc eax, esi
mov dword [0x100812c0], edx
mov dword [0x100812c4], eax
mov dword [ebp - 0x100], 0
mov dword [ebp - 0x40], 0x98160656
mov ecx, 0x8b1ec
mov dword [ebp - 0x6c], 0xadc2fb5c
mov dword [ebp - 0x68], ecx
movsx eax, byte [ebp - 0x12]
cdq
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
add edx, ecx
adc eax, esi
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x84], 0
mov eax, dword [ebp - 0x40]
cdq
mov dword [0x10081368], eax
mov dword [0x1008136c], edx
movsx ecx, byte [0x100812ba]
imul edx, ecx, 0x1fd
mov dword [0x1008134c], edx
movzx eax, byte [ebp - 0x11]
imul eax, dword [0x100812f8]
movzx ecx, byte [ebp - 0x11]
add ecx, eax
mov byte [ebp - 0x11], cl
mov dword [ebp - 0xfc], 0
mov eax, dword [ebp - 0x74]
cdq
push edx
push eax
mov edx, dword [0x100812d4]
push edx
mov eax, dword [0x100812d0]
push eax
call fcn.1005a880
mov dword [0x100812d0], eax
mov dword [0x100812d4], edx
mov ecx, dword [0x10081340]
mov edx, dword [0x10081344]
sub ecx, 1
sbb edx, 0
mov dword [0x10081340], ecx
mov dword [0x10081344], edx
push 0
push 0xb0
push 0
push 0x28
push 0
push 0
push 0
push 8
push 0
push 0x8e
push 0
push 0
call fcn.10056d50
add esp, 0x30
mov dword [0x10081358], eax
mov dword [0x1008135c], edx
mov eax, dword [0x10081358]
mov ecx, dword [0x1008135c]
mov dword [ebp - 0x125c], eax
mov dword [ebp - 0x1258], ecx
mov edx, dword [ebp - 0x125c]
or edx, dword [ebp - 0x1258]
je 0x10044fca
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x10044fc8
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov eax, dword [0x100812e4]
push eax
mov eax, dword [0x100812e0]
push eax
push edx
push ecx
call fcn.1005a880
mov dword [ebp - 0x48], eax
movsx ecx, byte [0x100812ca]
test ecx, ecx
jne 0x10044faf
mov dword [ebp - 0x3b0], 1
jmp 0x10044fb9
mov dword [ebp - 0x3b0], 0
mov edx, 0x2d86700c
sub edx, dword [ebp - 0x3b0]
mov word [ebp - 0x2c], dx
jmp 0x10044ffe
mov ax, word [ebp - 0x1c]
add ax, 1
mov word [ebp - 0x1c], ax
movsx eax, word [0x10081328]
add eax, 0xcbe7
cdq
mov dword [0x10081368], eax
mov dword [0x1008136c], edx
movsx ecx, word [ebp - 0x2c]
add ecx, 0x841d538
mov byte [str._Windows::Compat::A], cl
movsx edx, byte [0x1008123e]
sub edx, dword [0x10081310]
mov byte [0x1008123e], dl
mov eax, dword [0x10081358]
mov ecx, dword [0x1008135c]
mov edx, dword [0x100812e4]
push edx
mov edx, dword [0x100812e0]
push edx
push ecx
push eax
call fcn.1005a880
mov ecx, dword [0x10081358]
mov esi, dword [0x1008135c]
add ecx, eax
adc esi, edx
mov dword [0x10081358], ecx
mov dword [0x1008135c], esi
mov edx, 2
imul eax, edx, 0x6a
movsx ecx, word [eax + 0x104c8ac0]
mov dword [ebp - 0x38], ecx
mov edx, dword [0x102afee0]
mov dword [ebp - 0x164], edx
cmp dword [ebp - 0x48], 0
jne 0x1004507d
mov dword [ebp - 0x3b4], 1
jmp 0x10045087
mov dword [ebp - 0x3b4], 0
mov eax, dword [ebp - 0x3b4]
mov dword [ebp - 0x34], eax
movsx eax, byte [0x1008128f]
cdq
mov ecx, dword [ebp - 0x6c]
sub ecx, eax
mov eax, dword [ebp - 0x68]
sbb eax, edx
add ecx, dword [ebp - 0x6c]
adc eax, dword [ebp - 0x68]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x164]
add ecx, 0x411
mov dword [ebp - 0x1480], ecx
push 0
call fcn.10058420
add esp, 4
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
jbe 0x1004513c
mov edx, dword [0x10081320]
sub edx, 0x6f62e96b
mov dword [0x100812f8], edx
movsx eax, byte [0x100812ba]
test eax, eax
jne 0x10045104
xor ecx, ecx
mov dword [ebp - 0xc54], 1
mov dword [ebp - 0xc50], ecx
jmp 0x1004510f
xorps xmm0, xmm0
movlpd qword [ebp - 0xc54], xmm0
mov edx, dword [ebp - 0xc54]
mov eax, dword [ebp - 0xc50]
mov dword [0x100812e0], edx
mov dword [0x100812e4], eax
movsx eax, word [ebp - 0x28]
cdq
add eax, 0x9163b380
adc edx, 0xef7b
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x164]
add ecx, 0x2fa
mov dword [ebp - 0x1484], ecx
push 0x15
push 0x3d
push 0x78
movzx edx, word [ebp - 0x3c]
push edx
push 0x9a
push 0xb
push 0xab
call fcn.10059100
add esp, 0x1c
cwde
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jae 0x10045183
mov dword [ebp - 0x3b8], 1
jmp 0x1004518d
mov dword [ebp - 0x3b8], 0
cmp dword [ebp - 0x34], 0x62
jae 0x1004519f
mov dword [ebp - 0x3bc], 1
jmp 0x100451a9
mov dword [ebp - 0x3bc], 0
mov ecx, dword [ebp - 0x3b8]
cmp ecx, dword [ebp - 0x3bc]
jl 0x10045221
mov dword [ebp - 0x160], 0
jmp 0x100451d2
mov edx, dword [ebp - 0x160]
add edx, 1
mov dword [ebp - 0x160], edx
cmp dword [ebp - 0x160], 0x107
jge 0x1004521c
mov eax, dword [0x10081364]
add eax, 0x1bbf4bae
mov byte [0x1008127b], al
mov ecx, dword [0x102afee0]
xor edx, edx
mov dword [0x10081308], ecx
mov dword [0x1008130c], edx
movzx eax, byte [0x1008123f]
shl eax, 5
mov dword [ebp - 0x64], eax
mov cx, word [ebp - 0x18]
add cx, 1
mov word [ebp - 0x18], cx
jmp 0x100451c3
jmp 0x10045366
mov edx, dword [0x100812e0]
or edx, dword [0x100812e4]
je 0x10045291
cmp dword [ebp - 0x3c], 0
jne 0x10045241
mov dword [ebp - 0x3c0], 1
jmp 0x1004524b
mov dword [ebp - 0x3c0], 0
movsx eax, word [ebp - 0x28]
mov ecx, dword [0x1008134c]
not ecx
xor ecx, dword [ebp - 0x3c0]
lea edx, [ecx + eax - 0xc5ba]
mov byte [0x100812ca], dl
mov eax, dword [0x100812d8]
cdq
mov ecx, dword [0x10081358]
mov esi, dword [0x1008135c]
add ecx, eax
adc esi, edx
mov dword [0x10081358], ecx
mov dword [0x1008135c], esi
jmp 0x10045366
mov edx, dword [0x10081340]
mov eax, dword [0x10081344]
mov dword [ebp - 0x1264], edx
mov dword [ebp - 0x1260], eax
cmp dword [ebp - 0x1264], 0xa353
jne 0x100452bd
cmp dword [ebp - 0x1260], 0
je 0x100452f2
movsx ecx, word [ebp - 0x28]
add ecx, dword [0x10081350]
mov word [ebp - 0x28], cx
movsx edx, byte [ebp - 0x12]
imul eax, edx, 0xcf4e4840
xor ecx, ecx
mov dword [0x10081368], eax
mov dword [0x1008136c], ecx
mov edx, dword [0x102afee0]
xor eax, eax
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x68], eax
jmp 0x10045366
movsx ecx, word [0x10081328]
not ecx
cmp ecx, 0x73
jge 0x10045366
movzx edx, word [ebp - 0x24]
test edx, edx
jne 0x10045314
mov dword [ebp - 0x3c4], 1
jmp 0x1004531e
mov dword [ebp - 0x3c4], 0
movsx eax, byte [0x1008128f]
cdq
mov ecx, 0xfc1ded4d
sub ecx, eax
mov edx, dword [ebp - 0x64]
not edx
imul edx, dword [ebp - 0x3c4]
sub edx, ecx
mov dword [ebp - 0x54], edx
movzx eax, word [ebp - 0x24]
cdq
push 0xbef2a
push 0x3ab8b132
push edx
push eax
call fcn.1005a880
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
mov ax, word [ebp - 0x2c]
sub ax, 1
mov word [ebp - 0x2c], ax
mov ecx, dword [ebp - 0x164]
add ecx, 0x454
mov dword [ebp - 0x1bc], ecx
jmp 0x10045389
jmp 0x100453a9
mov edx, dword [0x102afee0]
mov dword [ebp - 0x168], edx
mov dword [ebp - 0x44], 3
mov al, byte [ebp - 0x20]
mov byte [0x100812ba], al
movsx ecx, word [ebp - 0x2c]
add ecx, 0x2b582ada
mov word [ebp - 0x28], cx
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x3c8], edx
cmp dword [ebp - 0x3c8], 3
ja case.default.0x100453ee
mov eax, dword [ebp - 0x3c8]
jmp dword [eax*4 + 0x10056b3c]
movzx ecx, word [ebp - 0x24]
add ecx, dword [0x10081324]
movsx edx, word [ebp - 0x1c]
mov eax, 0x5abeb2f1
sub eax, edx
xor eax, ecx
xor ecx, ecx
mov dword [0x100812f0], eax
mov dword [0x100812f4], ecx
cmp dword [0x10081350], 0
jne 0x1004542e
mov dword [ebp - 0x3cc], 1
jmp 0x10045438
mov dword [ebp - 0x3cc], 0
movsx edx, word [ebp - 0x30]
movsx eax, byte [0x100812cb]
sub eax, edx
movsx ecx, word [0x10081328]
mov edx, dword [ebp - 0x3cc]
sub edx, ecx
sub edx, eax
mov byte [0x100812bb], dl
jmp case.default.0x100453ee
movzx eax, word [ebp - 0x20]
not eax
mov dword [ebp - 0x54], eax
jmp case.default.0x100453ee
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x34], ecx
mov dl, byte [ebp - 0x38]
mov byte [0x10081267], dl
jmp case.default.0x100453ee
cmp dword [ebp - 0x70], 0
jne 0x100454a0
xor eax, eax
mov dword [ebp - 0xc5c], 1
mov dword [ebp - 0xc58], eax
jmp 0x100454ab
xorps xmm0, xmm0
movlpd qword [ebp - 0xc5c], xmm0
mov ecx, dword [ebp - 0x44]
xor esi, esi
mov edx, dword [ebp - 0x58]
mov edi, dword [ebp - 0xc5c]
sub edi, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0xc58]
sbb ebx, edx
movsx eax, word [ebp - 0x1c]
not eax
movzx edx, byte [ebp - 0x11]
xor eax, edx
cdq
sub eax, edi
sbb edx, ebx
add eax, ecx
adc edx, esi
mov dword [0x100812f0], eax
mov dword [0x100812f4], edx
movsx eax, word [ebp - 0x1c]
mov dword [ebp - 0x34], eax
mov ecx, dword [0x100812c0]
mov esi, dword [0x100812c4]
movsx eax, word [ebp - 0x30]
cdq
mov edi, eax
mov ebx, edx
add edi, ecx
adc ebx, esi
movzx eax, word [0x100812fc]
imul eax, dword [ebp - 0x40]
cdq
sub eax, edi
sbb edx, ebx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov edx, dword [ebp - 0x168]
add edx, 0x39b
mov dword [ebp - 0xcdc], edx
call dword [sym.imp.USER32.dll_GetShellWindow]
mov word [0x10081354], ax
mov eax, dword [ebp - 0x168]
add eax, 0x280
mov dword [ebp - 0x224], eax
mov eax, dword [0x10081364]
cdq
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x126c], ecx
mov dword [ebp - 0x1268], esi
mov dword [ebp - 0x1274], eax
mov dword [ebp - 0x1270], edx
mov edx, dword [ebp - 0x126c]
cmp edx, dword [ebp - 0x1274]
jne 0x10045589
mov eax, dword [ebp - 0x1268]
cmp eax, dword [ebp - 0x1270]
je 0x10045595
mov dword [ebp - 0x3d0], 1
jmp 0x1004559f
mov dword [ebp - 0x3d0], 0
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x127c], ecx
mov dword [ebp - 0x1278], edx
cmp dword [ebp - 0x127c], 0x5d
jne 0x100455c3
cmp dword [ebp - 0x1278], 0
je 0x100455cf
mov dword [ebp - 0x3d4], 1
jmp 0x100455d9
mov dword [ebp - 0x3d4], 0
mov eax, dword [ebp - 0x3d0]
cmp eax, dword [ebp - 0x3d4]
jne 0x10045644
mov ecx, dword [str.FailedWriteDword:0]
mov dword [ebp - 0x13b4], ecx
mov edx, dword [0x100677e0]
mov dword [ebp - 0x13b0], edx
mov eax, dword [0x100677e4]
mov dword [ebp - 0x13ac], eax
mov ecx, dword [0x100677e8]
mov dword [ebp - 0x13a8], ecx
mov dx, word [0x100677ec]
mov word [ebp - 0x13a4], dx
mov al, byte [0x100677ee]
mov byte [ebp - 0x13a2], al
lea ecx, [ebp - 0x13b4]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov word [0x1008132c], ax
jmp 0x100456a7
cmp dword [ebp - 0x3c], 0
jne 0x10045676
movsx edx, word [0x100812ec]
test edx, edx
je 0x10045676
movzx eax, word [ebp - 0x20]
cdq
add eax, 0x5206f09d
mov dword [ebp - 0x60], eax
movzx eax, byte [0x10081207]
sub eax, 0x7ede1d1c
mov word [0x10081328], ax
jmp 0x100456a7
movsx ecx, word [ebp - 0x30]
test ecx, ecx
jne 0x1004568a
mov dx, word [ebp - 0x30]
mov byte [0x1008123e], dl
jmp 0x100456a7
movsx eax, word [ebp - 0x2c]
test eax, eax
jne 0x100456a7
mov cx, word [0x100812fc]
mov edx, 1
imul eax, edx, 0x1e
mov byte [eax + 0x103000c8], cl
mov ecx, dword [ebp - 0x168]
add ecx, 0x261
mov dword [ebp - 0x1488], ecx
mov edx, 2
mov word [0x10081328], dx
mov eax, dword [0x102afee0]
xor ecx, ecx
mov dword [0x10081370], eax
mov dword [0x10081374], ecx
movsx eax, word [ebp - 0x1c]
cdq
push edx
push eax
mov edx, dword [ebp - 0x68]
push edx
mov eax, dword [ebp - 0x6c]
push eax
call fcn.1005a880
mov ecx, dword [ebp - 0x6c]
sub ecx, eax
mov eax, dword [ebp - 0x68]
sbb eax, edx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x70], 0xfd0b56c
movsx ecx, word [0x10081328]
mov dword [ebp - 0x16c], ecx
cmp dword [ebp - 0x16c], 0
je 0x1004572f
cmp dword [ebp - 0x16c], 1
je 0x10045760
cmp dword [ebp - 0x16c], 2
je 0x1004578c
jmp 0x100457b9
movzx eax, word [0x100812fc]
cdq
sub eax, 0x2363337b
mov word [0x1008132c], ax
movzx edx, byte [ebp - 0x11]
imul eax, edx, 0xd510
mov byte [0x100812bb], al
mov eax, dword [ebp - 0x38]
sar eax, 3
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
jmp 0x100457b9
mov cx, word [0x102afee0]
mov word [ebp - 0x20], cx
movzx edx, word [ebp - 0x24]
xor edx, 0xf10a
mov eax, dword [ebp - 0x40]
sub eax, edx
mov dword [ebp - 0x40], eax
imul ecx, dword [0x10081320], 0x48
mov dword [0x10081350], ecx
jmp 0x100457b9
xor edx, edx
mov dword [0x100812f0], 0xa071cf17
mov dword [0x100812f4], edx
movsx eax, byte [ebp - 0x12]
cdq
add eax, 0x2f206efb
adc edx, 0xd20d9
mov dword [0x10081340], eax
mov dword [0x10081344], edx
mov eax, dword [0x102afee0]
mov dword [ebp - 0x170], eax
mov ecx, dword [0x100812e0]
or ecx, dword [0x100812e4]
je 0x10045891
push 0x57
call fcn.10058420
add esp, 4
mov word [ebp - 0x24], ax
movzx edx, word [ebp - 0x24]
test edx, edx
jl 0x1004585c
mov eax, dword [0x10081358]
mov ecx, dword [0x1008135c]
mov dword [ebp - 0x148c], ecx
xor eax, 0x3d93e7a
mov byte [str._Windows::Compat::A], al
movzx edx, byte [0x100812bb]
test edx, edx
jne 0x1004581e
movzx eax, byte [0x100812bb]
imul eax, dword [0x100812f8]
movzx ecx, byte [0x100812bb]
imul ecx, eax
mov byte [0x100812bb], cl
mov edx, dword [0x100812c0]
mov eax, dword [0x100812c4]
mov dword [ebp - 0x1494], eax
mov byte [0x100812ba], dl
mov ecx, dword [ebp - 0x170]
add ecx, 0x41a
mov dword [ebp - 0x9ac], ecx
movzx edx, byte [ebp - 0x11]
push edx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
xor ecx, ecx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x50]
or edx, dword [ebp - 0x4c]
je 0x1004597b
mov ecx, dword [0x100812f0]
mov esi, dword [0x100812f4]
movsx eax, word [0x10081314]
cdq
sub eax, ecx
sbb edx, esi
not eax
not edx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
movzx edx, byte [0x10081207]
test edx, edx
jne 0x10045903
mov eax, dword [0x10081350]
cdq
mov dword [ebp - 0x1284], eax
mov dword [ebp - 0x1280], edx
mov edx, dword [ebp - 0x1280]
cmp edx, dword [0x100812e4]
jl 0x100459e8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret