Function at 0x10036090
Capabilities:
Create directory
Encrypt data using aes mixcolumns step
Encrypt data using speck
Get common file path
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ae4b0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x1b58
call fcn.100a26e0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov eax, dword [0x100d3138]
mov dword [ebp - 0x868], eax
mov ecx, 0x3792
mov word [ebp - 0x28], cx
mov edx, 0xd1
mov word [ebp - 0x38], dx
mov dword [ebp - 0x50], 0x20fd
mov eax, dword [0x100d31b4]
mov dword [ebp - 0x3c], eax
movzx cx, byte [0x100d3063]
mov word [ebp - 0x30], cx
mov edx, dword [0x100d3180]
mov eax, dword [0x100d3184]
mov dword [ebp - 0x758], eax
mov dword [ebp - 0x68], edx
movsx eax, word [0x100d31b0]
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movsx cx, byte [0x100d3026]
mov word [ebp - 0x2c], cx
mov dword [ebp - 0x40], 0x3cd70b06
mov dword [ebp - 0x64], 0x7617
mov edx, 0xa7e9a
mov dword [ebp - 0x48], 0x8b521b1d
mov dword [ebp - 0x44], edx
mov byte [ebp - 0x12], 0x45
mov ax, word [0x100d3130]
mov word [ebp - 0x20], ax
mov cx, word [0x100d312c]
mov byte [ebp - 0x16], cl
mov edx, 0x11b9
mov word [ebp - 0x34], dx
mov byte [ebp - 0x11], 0xc6
mov al, byte [0x100d3120]
mov byte [ebp - 0x15], al
mov dword [ebp - 0x4c], 0xe0
mov eax, dword [0x100d311c]
cdq
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov byte [ebp - 0x13], 0xcc
mov ecx, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edx
mov eax, dword [0x100d3140]
mov word [ebp - 0x1c], ax
mov byte [ebp - 0x14], 0x26
mov ecx, 0xe3
mov word [ebp - 0x24], cx
mov byte [ebp - 0x17], 0x7e
mov edx, dword [0x100d3160]
mov eax, dword [0x100d3164]
mov dword [ebp - 0x84c], edx
mov dword [ebp - 0x848], eax
mov cl, byte [0x100d3148]
mov byte [ebp - 0x95], cl
mov dx, word [0x100d3128]
mov byte [ebp - 0x94], dl
mov byte [ebp - 0x93], 0xb5
mov eax, 0x63a6
mov word [ebp - 0x4a0], ax
mov ecx, dword [0x100d3140]
mov word [ebp - 0x4a4], cx
mov dword [ebp - 0x75c], 1
mov edx, 0x1350
mov word [ebp - 0x674], dx
mov eax, dword [0x100d3134]
mov dword [ebp - 0x760], eax
mov cx, word [0x100d315c]
mov word [ebp - 0x670], cx
xor edx, edx
mov dword [ebp - 0x854], 0xb2d1
mov dword [ebp - 0x850], edx
mov al, byte [0x100d3178]
mov byte [ebp - 0x92], al
mov dword [ebp - 0x764], 0x670f14cd
mov cx, word [0x100d3134]
mov word [ebp - 0x66c], cx
mov dl, byte [0x100d3160]
mov byte [ebp - 0x91], dl
mov eax, dword [0x100d3134]
cdq
mov dword [ebp - 0x85c], eax
mov dword [ebp - 0x858], edx
xor eax, eax
mov dword [ebp - 0x864], 0x84
mov dword [ebp - 0x860], eax
mov ecx, 0xab
mov word [ebp - 0x668], cx
mov dword [ebp - 0x9c], 0
jmp 0x100362b7
mov edx, dword [ebp - 0x9c]
add edx, 2
mov dword [ebp - 0x9c], edx
cmp dword [ebp - 0x9c], 0x3dc
jge 0x10036438
movsx eax, byte [ebp - 0x11]
test eax, eax
je 0x1003636f
movzx eax, byte [ebp - 0x16]
add eax, 0xd9
cdq
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
movzx ecx, byte [ebp - 0x12]
test ecx, ecx
je 0x10036301
mov edx, dword [0x100d3170]
xor eax, eax
mov dword [ebp - 0x464], edx
mov dword [ebp - 0x460], eax
jmp 0x10036319
mov ecx, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
mov dword [ebp - 0x464], ecx
mov dword [ebp - 0x460], edx
mov ax, word [ebp - 0x464]
mov word [0x100d3178], ax
mov cl, byte [0x100d3026]
add cl, 1
mov byte [0x100d3026], cl
movsx edx, byte [ebp - 0x17]
sub edx, 0x5dff9d03
mov byte [ebp - 0x11], dl
cmp dword [ebp - 0x50], 0
jne 0x10036356
mov eax, 1
mov word [ebp - 0x86], ax
jmp 0x1003635f
xor ecx, ecx
mov word [ebp - 0x86], cx
mov dx, word [ebp - 0x86]
mov word [ebp - 0x20], dx
jmp 0x10036427
movsx eax, word [0x100d312c]
cmp eax, 0x1d12e8ce
jl 0x10036389
mov dword [ebp - 0xf4], 1
jmp 0x10036393
mov dword [ebp - 0xf4], 0
mov ecx, dword [ebp - 0xf4]
cmp ecx, dword [ebp - 0x3c]
jle 0x10036427
imul edx, dword [ebp - 0x50], 0x13e
mov dword [0x100d3144], edx
movsx eax, word [ebp - 0x2c]
test eax, eax
je 0x100363d1
mov ecx, dword [0x100d3120]
mov edx, dword [0x100d3124]
mov dword [ebp - 0x46c], ecx
mov dword [ebp - 0x468], edx
jmp 0x100363e3
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x468], ecx
mov dl, byte [ebp - 0x46c]
mov byte [ebp - 0x16], dl
mov eax, 1
imul ecx, eax, 0x3f
movsx edx, byte [ecx + 0x10196a18]
mov dword [ebp - 0x68], edx
mov eax, dword [0x100d3198]
mov ecx, dword [0x100d319c]
mov dword [ebp - 0x768], ecx
add eax, 0xd044
mov word [ebp - 0x30], ax
mov edx, dword [0x100d3158]
sub edx, dword [ebp - 0x40]
mov dword [0x100d3158], edx
mov al, byte [0x100d3027]
add al, 1
mov byte [0x100d3027], al
jmp 0x100362a8
mov ecx, dword [0x100d3c78]
mov dword [ebp - 0xa0], ecx
mov edx, dword [0x100d3158]
cmp edx, dword [0x100d3170]
ja 0x1003645e
mov dword [ebp - 0xf8], 1
jmp 0x10036468
mov dword [ebp - 0xf8], 0
cmp dword [0x100d3158], 0x23
ja 0x1003647d
mov dword [ebp - 0xfc], 1
jmp 0x10036487
mov dword [ebp - 0xfc], 0
mov eax, dword [ebp - 0xf8]
cmp eax, dword [ebp - 0xfc]
jne 0x100364db
mov cx, word [0x100d3c78]
mov word [0x100d312c], cx
mov dl, byte [ebp - 0x17]
mov byte [ebp - 0x14], dl
movsx eax, word [0x100d31b0]
sub eax, dword [0x100d3190]
movsx ecx, word [0x100d31b0]
imul ecx, eax
mov word [0x100d31b0], cx
mov edx, dword [0x100d3134]
add edx, 0xf9
mov byte [ebp - 0x14], dl
jmp 0x10036585
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x690], eax
mov dword [ebp - 0x68c], ecx
mov edx, dword [ebp - 0x690]
or edx, dword [ebp - 0x68c]
je 0x10036585
movsx eax, word [ebp - 0x2c]
imul ecx, eax, 0x4e2d
mov dword [ebp - 0x4c], ecx
movzx edx, word [ebp - 0x38]
mov eax, dword [ebp - 0x40]
sub eax, edx
mov dword [ebp - 0x40], eax
mov ecx, 1
imul edx, ecx, 0x1d2f
movzx eax, byte [edx + 0x101221e0]
cdq
mov ecx, dword [0x100d3198]
mov esi, dword [0x100d319c]
sub ecx, eax
sbb esi, edx
mov dword [0x100d3198], ecx
mov dword [0x100d319c], esi
mov byte [0x100d3027], 8
mov edx, 8
imul eax, edx, 0xe8
mov cx, word [eax + 0x100f9570]
mov word [ebp - 0x38], cx
mov ecx, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
mov dword [ebp - 0x82c], edx
movzx eax, byte [0x100d3027]
cdq
add eax, ecx
mov byte [0x100d3027], al
mov eax, dword [ebp - 0xa0]
add eax, 0x7c0
mov dword [ebp - 0x67c], eax
push 0xad
push 0
push 0
push 0xca
call fcn.1005a510
add esp, 0x10
mov word [0x100d31b0], ax
movsx ecx, word [0x100d31b0]
test ecx, ecx
jle 0x100365c9
mov dword [ebp - 0x100], 1
jmp 0x100365d3
mov dword [ebp - 0x100], 0
movsx edx, word [0x100d31b0]
cmp edx, 0x5f
jle 0x100365eb
mov dword [ebp - 0x104], 1
jmp 0x100365f5
mov dword [ebp - 0x104], 0
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0x104]
jge 0x10036667
mov ecx, dword [ebp - 0x58]
or ecx, dword [ebp - 0x54]
je 0x10036665
mov dx, word [0x100d315c]
mov word [ebp - 0x30], dx
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
mov cl, 7
call fcn.100a25f0
mov word [ebp - 0x24], ax
mov dword [ebp - 0x68], 0xe583
movzx eax, word [ebp - 0x20]
sub eax, dword [0x100d31b4]
not eax
mov word [0x100d3128], ax
mov ecx, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
mov dword [ebp - 0x76c], edx
movsx eax, byte [ebp - 0x15]
cdq
mov esi, eax
xor esi, ecx
movsx eax, byte [ebp - 0x15]
cdq
sub eax, esi
mov byte [ebp - 0x15], al
jmp 0x100366e5
xor eax, eax
mov dword [0x100d3198], 0xef03d149
mov dword [0x100d319c], eax
mov ecx, dword [ebp - 0x64]
xor edx, edx
push 0x96db5
push 0x75f7ed88
push edx
push ecx
call fcn.100a25b0
and eax, dword [0x100d3168]
and edx, dword [0x100d316c]
mov dword [0x100d3168], eax
mov dword [0x100d316c], edx
mov eax, dword [ebp - 0x68]
cdq
mov ecx, eax
add ecx, dword [0x100d3138]
mov eax, dword [ebp - 0x68]
cdq
sub eax, ecx
mov dword [ebp - 0x68], eax
imul edx, dword [ebp - 0x40], 0x6513fc2
xor eax, eax
mov dword [0x100d3180], edx
mov dword [0x100d3184], eax
movsx eax, byte [ebp - 0x13]
cdq
mov ecx, eax
sub ecx, dword [0x100d3188]
movsx eax, byte [ebp - 0x13]
cdq
sub eax, ecx
mov byte [ebp - 0x13], al
mov edx, dword [ebp - 0xa0]
add edx, 0x6a2
mov dword [ebp - 0x178], edx
xor eax, eax
mov dword [ebp - 0x60], 0x8b5
mov dword [ebp - 0x5c], eax
movzx ecx, byte [ebp - 0x12]
mov dword [ebp - 0x40], ecx
mov edx, dword [0x100d31b4]
add edx, 0x10a8
xor eax, eax
add edx, dword [0x100d3188]
adc eax, dword [0x100d318c]
mov dword [0x100d3188], edx
mov dword [0x100d318c], eax
movsx eax, word [ebp - 0x2c]
cdq
add eax, 0xc1dbb84c
adc edx, 0xbbbce
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov ecx, dword [0x100d31b4]
xor edx, edx
sub ecx, 0x77518ec3
sbb edx, 0x6608d
mov dword [0x100d31a0], ecx
mov dword [0x100d31a4], edx
mov eax, dword [ebp - 0xa0]
add eax, 0x538
mov dword [ebp - 0x17c], eax
movzx ecx, byte [ebp - 0x14]
push ecx
movzx edx, byte [ebp - 0x15]
push edx
push 0x33
push 0
call fcn.10058a50
add esp, 0x10
mov byte [ebp - 0x16], al
movzx eax, byte [ebp - 0x16]
test eax, eax
je 0x100368b3
push 0
push 0x87
call fcn.1005b280
add esp, 8
mov byte [ebp - 0x13], al
movsx ecx, byte [ebp - 0x13]
test ecx, ecx
jge 0x100368b3
mov edx, dword [0x100d3170]
push edx
push 0xfc
movzx eax, byte [0x100d3027]
push eax
push 0x90
push 0
push 0
call fcn.1005c200
add esp, 0x18
mov dword [0x100d3144], eax
movzx ecx, word [ebp - 0x38]
cmp dword [0x100d3158], ecx
jae 0x10036803
xor edx, edx
mov dword [ebp - 0x474], 1
mov dword [ebp - 0x470], edx
jmp 0x1003680e
xorps xmm0, xmm0
movlpd qword [ebp - 0x474], xmm0
mov eax, dword [0x100d318c]
cmp eax, dword [ebp - 0x470]
ja 0x100368b3
jb 0x10036833
mov ecx, dword [0x100d3188]
cmp ecx, dword [ebp - 0x474]
ja 0x100368b3
mov edx, dword [0x100d31a0]
mov eax, dword [0x100d31a4]
sub edx, 0x99
sbb eax, 0
mov dword [0x100d3188], edx
mov dword [0x100d318c], eax
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x40]
movsx edx, byte [0x100d3026]
and edx, dword [0x100d31b4]
add edx, ecx
not edx
xor eax, eax
mov dword [0x100d3168], edx
mov dword [0x100d316c], eax
mov ecx, dword [ebp - 0x4c]
add ecx, 0x6100fef0
xor edx, edx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edx
movsx eax, byte [ebp - 0x15]
add eax, dword [ebp - 0x64]
movsx ecx, byte [ebp - 0x15]
and ecx, eax
mov byte [ebp - 0x15], cl
movzx edx, word [0x100d3178]
add edx, dword [0x100d3140]
movzx eax, word [0x100d3178]
sub eax, edx
mov word [0x100d3178], ax
mov ecx, dword [0x100d3c78]
mov dword [ebp - 0xa8], ecx
mov dl, byte [0x100d3c78]
mov byte [ebp - 0x11], dl
mov eax, dword [0x100d3190]
cdq
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
push esi
push ecx
push eax
push edx
call fcn.100a25b0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov ecx, dword [0x100d3160]
add ecx, 0x6afbcea5
mov edx, dword [ebp - 0x40]
add edx, ecx
mov dword [ebp - 0x40], edx
movsx eax, word [0x100d3128]
sar eax, 7
mov dword [ebp - 0x68], eax
mov ecx, dword [0x100d3198]
mov edx, dword [0x100d319c]
push edx
push ecx
mov eax, dword [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.100a25b0
mov dword [ebp - 0x698], eax
mov dword [ebp - 0x694], edx
mov edx, dword [ebp - 0x698]
or edx, dword [ebp - 0x694]
jne 0x1003694f
mov dword [ebp - 0x108], 1
jmp 0x10036959
mov dword [ebp - 0x108], 0
movzx eax, word [ebp - 0x20]
mov ecx, 0x3acb1aa0
sub ecx, eax
mov eax, ecx
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x3c]
cdq
mov edi, dword [0x100d3188]
sub edi, eax
mov ebx, dword [0x100d318c]
sbb ebx, edx
not edi
not ebx
xor edi, ecx
xor ebx, esi
movsx eax, word [ebp - 0x24]
add eax, dword [ebp - 0x108]
cdq
push ebx
push edi
push edx
push eax
call fcn.100a25b0
not eax
not edx
mov dword [0x100d3180], eax
mov dword [0x100d3184], edx
mov edx, dword [ebp - 0xa8]
add edx, 0x671
mov dword [ebp - 0x208], edx
mov dword [ebp - 4], 0
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
xor ecx, ecx
mov dword [0x100d3120], eax
mov dword [0x100d3124], ecx
cmp dword [0x100d3124], 0
ja 0x100369f6
jb 0x100369ea
cmp dword [0x100d3120], 0
jae 0x100369f6
mov dword [ebp - 0x10c], 1
jmp 0x10036a00
mov dword [ebp - 0x10c], 0
cmp dword [0x100d3124], 0
ja 0x10036a20
jb 0x10036a14
cmp dword [0x100d3120], 0x41
jae 0x10036a20
mov dword [ebp - 0x110], 1
jmp 0x10036a2a
mov dword [ebp - 0x110], 0
mov edx, dword [ebp - 0x10c]
cmp edx, dword [ebp - 0x110]
jl 0x10036ae1
mov dword [ebp - 0xa4], 0
jmp 0x10036a57
mov eax, dword [ebp - 0xa4]
add eax, 1
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0xec
jge 0x10036ae1
mov ecx, dword [ebp - 0x4c]
add ecx, 0xfaf1205c
mov word [ebp - 0x2c], cx
mov edx, dword [0x100d31a0]
mov eax, dword [0x100d31a4]
mov dword [ebp - 0x770], eax
add edx, 0xaefd6827
mov word [ebp - 0x1c], dx
imul ecx, dword [0x100d3158], 0x11e7438d
xor edx, edx
mov dword [0x100d31a8], ecx
mov dword [0x100d31ac], edx
mov eax, dword [0x100d3174]
sub eax, dword [ebp - 0x64]
mov dword [0x100d3174], eax
mov ecx, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
push 0
push 0xfd73541e
push edx
push ecx
call fcn.100a25b0
mov byte [0x100d3027], al
mov eax, dword [0x100d3140]
add eax, 1
mov dword [0x100d3140], eax
jmp 0x10036a48
jmp 0x10036b4a
mov dword [ebp - 4], 0xffffffff
jmp 0x10036b5a
mov eax, dword [ebp - 0xa8]
add eax, 0x7e0
mov dword [ebp - 0x774], eax
movzx ecx, byte [0x100d304f]
test ecx, ecx
jne 0x10036b82
mov dword [ebp - 0x114], 1
jmp 0x10036b8c
mov dword [ebp - 0x114], 0
movsx edx, byte [ebp - 0x14]
movzx eax, word [0x100d3178]
xor eax, edx
not eax
movzx ecx, word [0x100d3178]
xor ecx, dword [ebp - 0x114]
not ecx
imul eax, ecx
cdq
mov dword [0x100d3148], eax
mov dword [0x100d314c], edx
mov edx, dword [0x100d31a0]
mov eax, dword [0x100d31a4]
mov dword [ebp - 0x778], eax
sub edx, 0xcb6e4907
mov byte [ebp - 0x13], dl
mov ecx, dword [0x100d3120]
sub ecx, 0xc4
mov byte [ebp - 0x11], cl
mov dl, byte [ebp - 0x34]
mov byte [ebp - 0x11], dl
movsx eax, byte [ebp - 0x11]
add eax, 0xe5f7
cdq
mov dword [0x100d3148], eax
mov dword [0x100d314c], edx
mov eax, dword [0x100d3198]
mov ecx, dword [0x100d319c]
mov edx, dword [0x100d3124]
push edx
mov edx, dword [0x100d3120]
push edx
push ecx
push eax
call fcn.100a25b0
mov ecx, dword [0x100d3198]
mov esi, dword [0x100d319c]
sub ecx, eax
sbb esi, edx
mov dword [0x100d3198], ecx
mov dword [0x100d319c], esi
mov edx, dword [ebp - 0xa8]
add edx, 0x453
mov dword [ebp - 0x4b4], edx
push str.gdi32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x100d3144], eax
mov eax, dword [0x100d3c78]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x3c]
cdq
mov ecx, 8
imul ecx, ecx, 0x9d0
mov dword [ecx + 0x101815a8], eax
mov dword [ecx + 0x101815ac], edx
mov edx, dword [0x100d3190]
sar edx, 5
mov dword [ebp - 0x50], edx
mov al, byte [ebp - 0x3c]
mov byte [0x100d3027], al
mov cx, word [ebp - 0x1c]
add cx, 1
mov word [ebp - 0x1c], cx
movzx eax, word [ebp - 0x1c]
add eax, 0x2b
cdq
mov dword [0x100d3188], eax
mov dword [0x100d318c], edx
mov edx, dword [ebp - 0xac]
add edx, 0x558
mov dword [ebp - 0x77c], edx
movsx eax, word [0x100d3130]
cdq
mov dword [ebp - 0x6a0], eax
mov dword [ebp - 0x69c], edx
mov eax, dword [0x100d3164]
cmp eax, dword [ebp - 0x69c]
ja 0x10036d8d
jb 0x10036cff
mov ecx, dword [0x100d3160]
cmp ecx, dword [ebp - 0x6a0]
jae 0x10036d8d
mov eax, dword [0x100d3134]
cdq
mov ecx, dword [0x100d3150]
sub ecx, eax
mov eax, dword [0x100d3154]
sbb eax, edx
mov edx, dword [0x100d3150]
sub edx, ecx
mov ecx, dword [0x100d3154]
sbb ecx, eax
mov dword [0x100d3150], edx
mov dword [0x100d3154], ecx
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x3c]
cdq
add eax, dword [ebp - 0x70]
adc edx, dword [ebp - 0x6c]
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov dword [0x100d3140], eax
mov edx, dword [ebp - 0x70]
sub edx, 0x1a
mov word [ebp - 0x1c], dx
movsx eax, word [0x100d31b0]
xor eax, dword [0x100d3158]
mov dword [0x100d3158], eax
movsx ecx, byte [0x100d3026]
add ecx, dword [0x100d3174]
mov edx, dword [0x100d3174]
sub edx, ecx
mov dword [0x100d3174], edx
jmp 0x10036f54
movsx eax, word [ebp - 0x28]
movsx ecx, word [0x100d31b0]
cmp ecx, eax
jle 0x10036da8
mov dword [ebp - 0x118], 1
jmp 0x10036db2
mov dword [ebp - 0x118], 0
mov edx, dword [0x100d3150]
or edx, dword [0x100d3154]
jne 0x10036dd4
mov eax, dword [ebp - 0x70]
or eax, dword [ebp - 0x6c]
je 0x10036dd4
mov dword [ebp - 0x11c], 1
jmp 0x10036dde
mov dword [ebp - 0x11c], 0
mov ecx, dword [ebp - 0x118]
add ecx, dword [ebp - 0x11c]
jne 0x10036f54
mov edx, dword [0x100d3158]
add edx, 0x2a053f60
mov dword [0x100d3174], edx
movzx eax, byte [ebp - 0x12]
movzx ecx, word [0x100d3178]
sub ecx, eax
mov word [0x100d3178], cx
movsx eax, word [ebp - 0x24]
cdq
add eax, dword [ebp - 0x70]
adc edx, dword [ebp - 0x6c]
mov dword [ebp - 0x6a8], eax
mov dword [ebp - 0x6a4], edx
mov edx, dword [ebp - 0x6a8]
or edx, dword [ebp - 0x6a4]
jne 0x10036e4f
xor eax, eax
mov dword [ebp - 0x47c], 1
mov dword [ebp - 0x478], eax
jmp 0x10036e5a
xorps xmm0, xmm0
movlpd qword [ebp - 0x47c], xmm0
movsx eax, byte [ebp - 0x11]
cdq
xor eax, 0x87d34b6b
xor edx, 0xcb70a
mov ecx, dword [ebp - 0x478]
push ecx
mov ecx, dword [ebp - 0x47c]
push ecx
push edx
push eax
call fcn.100a25b0
mov dword [ebp - 0x6b0], eax
mov dword [ebp - 0x6ac], edx
mov edx, dword [ebp - 0x6b0]
or edx, dword [ebp - 0x6ac]
jne 0x10036ea5
mov dword [ebp - 0x120], 1
jmp 0x10036eaf
mov dword [ebp - 0x120], 0
movsx eax, byte [ebp - 0x17]
imul eax, dword [ebp - 0x120]
mov word [ebp - 0x38], ax
mov ecx, dword [ebp - 0x48]
sub ecx, 0x3aa80a3d
mov edx, dword [ebp - 0x44]
sbb edx, 0
movsx eax, word [0x100d3130]
sub eax, 0x30ab0331
mov esi, eax
xor edi, edi
xor esi, ecx
xor edi, edx
not esi
not edi
movsx eax, byte [ebp - 0x13]
cdq
mov ecx, dword [0x100d31a8]
mov ebx, dword [0x100d31ac]
xor ecx, eax
xor ebx, edx
mov edx, dword [0x100d3138]
sub edx, ecx
mov eax, dword [0x100d313c]
sbb eax, ebx
push edi
push esi
push eax
push edx
call fcn.100a25b0
mov word [ebp - 0x34], ax
movzx ecx, byte [0x100d3027]
movsx edx, word [ebp - 0x34]
imul edx, ecx
mov word [ebp - 0x34], dx
mov eax, dword [0x100d3174]
add eax, 0x9c
xor ecx, ecx
mov edx, dword [0x100d3180]
mov esi, dword [0x100d3184]
push ecx
push eax
push esi
push edx
call fcn.100a25b0
mov dword [0x100d3180], eax
mov dword [0x100d3184], edx
mov eax, dword [ebp - 0xac]
add eax, 0x5fe
mov dword [ebp - 0xd8], eax
movzx ecx, byte [ebp - 0x12]
test ecx, ecx
je 0x10036f80
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStrings]
xor edx, edx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
jmp 0x10037054
mov eax, dword [0x100d3180]
mov ecx, dword [0x100d3184]
mov dword [ebp - 0x780], ecx
mov edx, 1
imul ecx, edx, 0x3819
mov byte [ecx + 0x10277950], al
mov eax, dword [0x100d3134]
not eax
cdq
xor eax, dword [0x100d3138]
xor edx, dword [0x100d313c]
movsx ecx, byte [ebp - 0x11]
add ecx, dword [0x100d3174]
not ecx
xor esi, esi
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov ecx, eax
mov esi, edx
movsx eax, byte [ebp - 0x15]
imul eax, dword [0x100d3190]
cdq
xor eax, ecx
xor edx, esi
mov dword [ebp - 0x6b8], eax
mov dword [ebp - 0x6b4], edx
mov edx, dword [ebp - 0x6b8]
or edx, dword [ebp - 0x6b4]
jne 0x10037001
mov byte [ebp - 0x71], 1
jmp 0x10037005
mov byte [ebp - 0x71], 0
mov al, byte [ebp - 0x71]
mov byte [ebp - 0x12], al
movsx eax, byte [ebp - 0x13]
add eax, 0x8a
cdq
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
movsx eax, byte [ebp - 0x13]
cdq
mov ecx, dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x48]
push ecx
push edx
push eax
call fcn.100a25b0
mov ecx, eax
movsx eax, byte [ebp - 0x13]
cdq
add eax, ecx
mov byte [ebp - 0x13], al
mov edx, 0xffff8f67
mov word [0x100d31b0], dx
mov eax, dword [0x100d311c]
sub eax, 0x7dd58b40
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0xac]
add ecx, 0x7bb
mov dword [ebp - 0x4c0], ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
mov byte [ebp - 0x17], al
mov edx, dword [0x100d3c78]
mov dword [ebp - 0xb0], edx
cmp dword [ebp - 0x50], 0
je 0x100370db
mov eax, dword [0x100d3140]
xor eax, 0xbdc1e2c
mov byte [ebp - 0x17], al
mov ecx, dword [0x100d31a8]
mov edx, dword [0x100d31ac]
mov dword [ebp - 0x784], edx
mov word [ebp - 0x28], cx
mov eax, dword [ebp - 0x40]
sub eax, 0x58c6
mov byte [ebp - 0x15], al
mov ecx, dword [ebp - 0x4c]
sub ecx, 0xb5ae
mov word [ebp - 0x24], cx
movsx edx, byte [ebp - 0x17]
movsx eax, word [0x100d3128]
sub eax, edx
movsx ecx, word [0x100d3128]
add ecx, eax
mov word [0x100d3128], cx
jmp 0x10037123
mov edx, dword [ebp - 0x4c]
sub edx, dword [0x100d3158]
mov dword [ebp - 0x4c], edx
mov eax, 8
shl eax, 0
mov cx, word [eax + 0x101bcef0]
mov word [0x100d312c], cx
mov dl, byte [0x100d3c78]
mov byte [ebp - 0x13], dl
imul eax, dword [0x100d3170], 0x6b1c550e
mov word [ebp - 0x38], ax
mov ecx, dword [0x100d3138]
sub ecx, 0x9f056950
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp - 0xb0]
add edx, 0x4a3
mov dword [ebp - 0x788], edx
movzx eax, byte [ebp - 0x13]
push eax
push 0
push 0
movzx ecx, byte [0x100d3138]
push ecx
call fcn.10058a50
add esp, 0x10
mov byte [ebp - 0x11], al
movsx edx, byte [ebp - 0x11]
test edx, edx
je 0x10037165
mov dword [ebp - 0x124], 1
jmp 0x1003716f
mov dword [ebp - 0x124], 0
movsx eax, byte [ebp - 0x11]
cmp eax, 0xe
je 0x10037184
mov dword [ebp - 0x128], 1
jmp 0x1003718e
mov dword [ebp - 0x128], 0
mov ecx, dword [ebp - 0x124]
cmp ecx, dword [ebp - 0x128]
jge 0x100372f2
movsx edx, byte [ebp - 0x15]
test edx, edx
je 0x100371dd
movsx eax, word [0x100d3130]
movsx ecx, word [ebp - 0x2c]
cmp ecx, eax
je 0x100371c3
mov dword [ebp - 0x12c], 1
jmp 0x100371cd
mov dword [ebp - 0x12c], 0
mov edx, dword [ebp - 0x12c]
not edx
test edx, edx
je 0x100372f2
mov eax, dword [ebp - 0x68]
cdq
add eax, 0xbc6e57cb
mov byte [ebp - 0x13], al
mov eax, dword [ebp - 0x64]
xor ecx, ecx
mov edx, dword [ebp - 0x54]
push edx
mov edx, dword [ebp - 0x58]
push edx
push ecx
push eax
call fcn.100a25b0
mov dword [ebp - 0x6c0], eax
mov dword [ebp - 0x6bc], edx
mov eax, dword [ebp - 0x6c0]
or eax, dword [ebp - 0x6bc]
jne 0x10037223
mov dword [ebp - 0x130], 1
jmp 0x1003722d
mov dword [ebp - 0x130], 0
movzx ecx, word [ebp - 0x1c]
and ecx, 0xffffff47
mov edx, dword [ebp - 0x130]
sub edx, ecx
jne 0x10037255
xor eax, eax
mov dword [ebp - 0x484], 1
mov dword [ebp - 0x480], eax
jmp 0x10037260
xorps xmm0, xmm0
movlpd qword [ebp - 0x484], xmm0
mov ecx, dword [0x100d3158]
xor esi, esi
add ecx, dword [ebp - 0x48]
adc esi, dword [ebp - 0x44]
movsx edx, byte [0x100d3026]
mov eax, dword [ebp - 0x3c]
sub eax, edx
cdq
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov ecx, dword [ebp - 0x480]
push ecx
mov ecx, dword [ebp - 0x484]
push ecx
push edx
push eax
call fcn.100a25b0
mov dword [0x100d31b4], eax
mov edx, dword [ebp - 0x3c]
add edx, 0x56665756
xor eax, eax
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], eax
movzx eax, word [0x100d3178]
cdq
add eax, 0x5ba2ff81
mov ecx, dword [ebp - 0x64]
or ecx, eax
mov dword [ebp - 0x64], ecx
imul edx, dword [ebp - 0x68], 0xa6
mov byte [0x100d3027], dl
mov eax, dword [0x100d3180]
mov ecx, dword [0x100d3184]
push 0xc5ca6
push 0x7497c58
push ecx
push eax
call fcn.100a25b0
mov dword [0x100d3134], eax
mov edx, dword [ebp - 0xb0]
add edx, 0x6f0
mov dword [ebp - 0xe0], edx
mov byte [ebp - 0x12], 0
movzx eax, word [0x100d3178]
imul ecx, eax, 0x6759589c
mov byte [ebp - 0x13], cl
movzx edx, byte [ebp - 0x12]
movsx eax, byte [ebp - 0x11]
add eax, edx
movsx ecx, byte [ebp - 0x11]
add ecx, eax
mov byte [ebp - 0x11], cl
mov edx, dword [ebp - 0x3c]
sub edx, 0xdb52
mov word [ebp - 0x24], dx
mov eax, 0x5158
mov word [ebp - 0x1c], ax
mov cl, byte [ebp - 0x12]
mov byte [ebp - 0x678], cl
cmp byte [ebp - 0x678], 0
je 0x10037358
jmp 0x100373d8
movsx edx, byte [ebp - 0x17]
sub edx, 0x1dee5d53
mov word [0x100d3178], dx
mov eax, 0x97
mov word [ebp - 0x28], ax
mov ecx, dword [0x100d3160]
or ecx, dword [0x100d3164]
jne 0x1003738c
mov dword [ebp - 0x134], 1
jmp 0x10037396
mov dword [ebp - 0x134], 0
movsx edx, word [ebp - 0x28]
mov eax, dword [0x100d3144]
add eax, edx
mov ecx, dword [0x100d3170]
xor ecx, dword [ebp - 0x4c]
xor ecx, eax
mov edx, dword [ebp - 0x134]
sub edx, dword [0x100d311c]
movzx eax, byte [0x100d3063]
imul eax, dword [ebp - 0x50]
not eax
sub eax, edx
imul eax, ecx
mov dword [ebp - 0x68], eax
movsx ecx, word [ebp - 0x34]
mov dword [ebp - 0x68], ecx
mov byte [ebp - 0x16], 8
mov edx, dword [ebp - 0xb0]
add edx, 0x817
mov dword [ebp - 0x78c], edx
movsx eax, word [ebp - 0x28]
movsx ecx, byte [ebp - 0x13]
cmp ecx, eax
jl 0x10037402
mov dword [ebp - 0x138], 1
jmp 0x1003740c
mov dword [ebp - 0x138], 0
movsx edx, byte [ebp - 0x13]
cmp edx, 0xa
jl 0x10037421
mov dword [ebp - 0x13c], 1
jmp 0x1003742b
mov dword [ebp - 0x13c], 0
mov eax, dword [ebp - 0x138]
cmp eax, dword [ebp - 0x13c]
jl 0x100374a4
movzx ecx, word [0x100d315c]
movsx edx, word [ebp - 0x24]
imul edx, ecx
movsx eax, word [ebp - 0x24]
sub eax, edx
mov word [ebp - 0x24], ax
mov cx, word [ebp - 0x40]
mov word [ebp - 0x28], cx
movsx edx, word [ebp - 0x24]
and edx, 0x1180dd02
mov eax, dword [0x100d3144]
sub eax, edx
mov dword [0x100d3144], eax
mov ecx, dword [0x100d3170]
xor edx, edx
mov dword [0x100d3138], ecx
mov dword [0x100d313c], edx
mov eax, dword [0x100d3198]
mov ecx, dword [0x100d319c]
mov dword [ebp - 0x790], ecx
add eax, 0x7fa7c056
mov word [0x100d31b0], ax
jmp 0x100375b8
movzx edx, word [ebp - 0x38]
movsx eax, byte [0x100d304e]
cmp eax, edx
je 0x10037545
movzx ecx, byte [ebp - 0x16]
imul ecx, dword [ebp - 0x50]
mov byte [ebp - 0x16], cl
mov edx, 1
imul eax, edx, 0x12
mov cl, byte [0x100d3134]
mov byte [eax + 0x1019a1f0], cl
movzx edx, byte [0x100d3027]
test edx, edx
je 0x100374ed
movzx eax, word [ebp - 0x38]
mov dword [ebp - 0x140], eax
jmp 0x100374fa
movzx ecx, byte [0x100d3027]
mov dword [ebp - 0x140], ecx
mov dx, word [ebp - 0x140]
mov word [0x100d3128], dx
mov ecx, dword [0x100d31a8]
mov edx, dword [0x100d31ac]
mov dword [ebp - 0x794], edx
movsx eax, word [ebp - 0x28]
cdq
add eax, ecx
mov word [ebp - 0x28], ax
movzx eax, byte [ebp - 0x16]
cdq
mov ecx, 8
imul edx, ecx, 0x58
sub eax, dword [edx + 0x1019a3b0]
mov byte [ebp - 0x16], al
mov al, byte [0x100d3c78]
mov byte [ebp - 0x15], al
jmp 0x100375b8
mov ecx, dword [ebp - 0x68]
not ecx
test ecx, ecx
je 0x100375b8
movsx edx, word [0x100d3128]
movsx eax, byte [ebp - 0x13]
sub eax, edx
movsx ecx, byte [ebp - 0x13]
sub ecx, eax
mov byte [ebp - 0x13], cl
movsx edx, word [0x100d312c]
mov eax, dword [0x100d3170]
sub eax, edx
mov dword [0x100d3170], eax
movzx eax, word [0x100d3178]
cdq
push 0x2eb62
push 0xbb38eb08
push edx
push eax
call fcn.100a25b0
mov dword [0x100d3160], eax
mov dword [0x100d3164], edx
mov eax, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
mov cl, 4
call fcn.100a25f0
mov dword [0x100d3198], eax
mov dword [0x100d319c], edx
mov ecx, dword [0x100d3c78]
mov dword [ebp - 0xb8], ecx
imul edx, dword [ebp - 0x3c], 0xff
mov word [ebp - 0x2c], dx
mov ecx, dword [0x100d31b4]
xor esi, esi
sub ecx, dword [0x100d3188]
sbb esi, dword [0x100d318c]
movzx eax, byte [0x100d304f]
cdq
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov dword [0x100d3168], eax
mov dword [0x100d316c], edx
movsx edx, word [ebp - 0x34]
movsx eax, word [0x100d312c]
imul eax, edx
movsx ecx, word [0x100d312c]
and ecx, eax
mov word [0x100d312c], cx
mov edx, dword [0x100d3174]
add edx, 0x258b702
movsx eax, byte [ebp - 0x13]
sub eax, edx
mov byte [ebp - 0x13], al
mov ecx, dword [0x100d3160]
mov edx, dword [0x100d3164]
mov dword [0x100d3160], ecx
mov dword [0x100d3164], edx
mov eax, dword [ebp - 0x40]
xor eax, 0xdd1dc09e
mov ecx, dword [0x100d3140]
or ecx, eax
mov dword [0x100d3140], ecx
mov edx, dword [ebp - 0xb8]
add edx, 0x4b4
mov dword [ebp - 0x90], edx
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
mov byte [0x100d304e], al
movsx eax, byte [0x100d304e]
test eax, eax
jne 0x100376ed
movsx ecx, byte [ebp - 0x13]
movsx edx, word [0x100d312c]
imul edx, ecx
mov word [0x100d312c], dx
movsx eax, word [0x100d312c]
mov ecx, dword [ebp - 0x3c]
sub ecx, eax
mov word [0x100d315c], cx
movsx eax, word [ebp - 0x24]
cdq
push 0x8dfbc
push 0x5ce60937
push edx
push eax
call fcn.100a25b0
mov ecx, eax
movsx eax, word [ebp - 0x34]
cdq
sub eax, ecx
mov word [ebp - 0x34], ax
mov edx, dword [0x100d3120]
sub edx, 0xe9
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x4c]
sub eax, 0x44
mov dword [ebp - 0x64], eax
jmp 0x10037756
movsx ecx, word [ebp - 0x30]
test ecx, ecx
je 0x10037756
mov edx, 2
imul eax, edx, 0x15e9
movzx ecx, word [eax + 0x10196a80]
movzx edx, byte [ebp - 0x12]
add edx, ecx
mov byte [ebp - 0x12], dl
movzx eax, word [0x100d315c]
movsx ecx, word [0x100d3128]
add ecx, eax
movsx edx, word [0x100d3128]
add edx, ecx
mov word [0x100d3128], dx
mov eax, dword [ebp - 0x64]
sub eax, 0xae
xor ecx, ecx
mov dword [0x100d31a8], eax
mov dword [0x100d31ac], ecx
mov edx, dword [ebp - 0x4c]
add edx, 0xd68d
xor eax, eax
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0xb8]
add ecx, 0x7bf
mov dword [ebp - 0x4e0], ecx
mov edx, 2
mov word [0x100d3128], dx
movzx eax, byte [0x100d304f]
test eax, eax
jne 0x1003778b
mov dword [ebp - 0x144], 1
jmp 0x10037795
mov dword [ebp - 0x144], 0
movsx ecx, word [ebp - 0x24]
sub ecx, dword [ebp - 0x3c]
movsx eax, word [ebp - 0x24]
sub eax, dword [ebp - 0x144]
xor eax, ecx
cdq
mov dword [0x100d3148], eax
mov dword [0x100d314c], edx
mov eax, dword [ebp - 0x68]
sub eax, 0x40
cdq
and eax, dword [0x100d3188]
and edx, dword [0x100d318c]
mov dword [0x100d3188], eax
mov dword [0x100d318c], edx
push 0
push 0x4f
mov edx, dword [0x100d313c]
push edx
mov eax, dword [0x100d3138]
push eax
call fcn.100a25b0
mov ecx, dword [0x100d3158]
and ecx, eax
mov dword [0x100d3158], ecx
movzx eax, byte [0x100d3027]
cdq
sub eax, dword [ebp - 0x48]
mov byte [ebp - 0x12], al
mov eax, dword [0x100d311c]
cdq
mov ecx, dword [0x100d318c]
push ecx
mov ecx, dword [0x100d3188]
push ecx
push edx
push eax
call fcn.100a25b0
mov ecx, eax
mov eax, dword [0x100d311c]
cdq
add eax, ecx
mov dword [0x100d311c], eax
movsx edx, word [0x100d3128]
mov dword [ebp - 0xb4], edx
cmp dword [ebp - 0xb4], 0
je 0x10037863
cmp dword [ebp - 0xb4], 1
je 0x100378da
cmp dword [ebp - 0xb4], 2
je 0x10037944
jmp 0x100379b2
movzx eax, word [ebp - 0x38]
cdq
mov ecx, eax
mov esi, edx
movsx eax, word [ebp - 0x28]
cdq
add eax, dword [0x100d3150]
adc edx, dword [0x100d3154]
not eax
not edx
mov edi, 0xe0
sub edi, eax
mov eax, 0
sbb eax, edx
add edi, ecx
adc eax, esi
mov dword [0x100d3198], edi
mov dword [0x100d319c], eax
movsx ecx, byte [ebp - 0x15]
sub ecx, dword [0x100d3158]
mov dl, byte [ebp - 0x15]
shl dl, cl
mov byte [ebp - 0x15], dl
movsx eax, byte [ebp - 0x13]
cdq
mov ecx, dword [0x100d31a8]
mov edx, dword [0x100d31ac]
mov dword [ebp - 0x798], edx
not ecx
sub ecx, eax
mov word [ebp - 0x30], cx
mov al, byte [ebp - 0x24]
mov byte [ebp - 0x12], al
jmp 0x100379b2
mov ecx, dword [0x100d3140]
xor ecx, 0x1b
xor edx, edx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], edx
mov eax, 0x1499
mov word [0x100d312c], ax
mov ecx, 8
mov word [ebp - 0x34], cx
movsx edx, word [ebp - 0x30]
mov dword [ebp - 0x64], edx
mov ecx, dword [0x100d3198]
mov edx, dword [0x100d319c]
mov dword [ebp - 0x79c], edx
movzx eax, word [ebp - 0x38]
cdq
mov esi, eax
sub esi, ecx
movzx eax, word [ebp - 0x38]
cdq
sub eax, esi
mov word [ebp - 0x38], ax
mov eax, dword [0x100d3138]
mov ecx, dword [0x100d313c]
mov dword [0x100d3120], eax
mov dword [0x100d3124], ecx
jmp 0x100379b2
movsx edx, byte [ebp - 0x13]
add edx, 0x4335
mov byte [ebp - 0x11], dl
mov eax, dword [0x100d3140]
add eax, 0xfb49
mov byte [0x100d3027], al
mov byte [ebp - 0x13], 4
movsx ecx, word [ebp - 0x28]
imul edx, ecx, 0xf7a1
imul edx, dword [0x100d3134]
not edx
mov dword [0x100d3158], edx
mov eax, dword [0x100d3138]
sub eax, dword [0x100d3168]
mov ecx, dword [0x100d313c]
sbb ecx, dword [0x100d316c]
mov dword [0x100d3138], eax
mov dword [0x100d313c], ecx
mov dx, word [ebp - 0x30]
mov eax, 2
imul ecx, eax, 0x4c
mov word [ecx + 0x10339248], dx
mov edx, dword [ebp - 0xb8]
add edx, 0x4e0
mov dword [ebp - 0x4e4], edx
call dword [sym.imp.USER32.dll_AnyPopup]
xor ecx, ecx
mov dword [0x100d3198], eax
mov dword [0x100d319c], ecx
mov edx, dword [0x100d3c78]
mov dword [ebp - 0xc0], edx
push 0xac
push 0
push 0xea
movzx eax, word [ebp - 0x30]
push eax
call fcn.1005c780
add esp, 0x10
cwde
cdq
mov dword [0x100d3138], eax
mov dword [0x100d313c], edx
mov ecx, dword [0x100d3138]
or ecx, dword [0x100d313c]
je 0x10037ac7
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
add edx, 0xacc064da
adc eax, 0
mov ecx, dword [0x100d31a8]
mov esi, dword [0x100d31ac]
add ecx, edx
adc esi, eax
mov dword [0x100d31a8], ecx
mov dword [0x100d31ac], esi
movsx edx, word [ebp - 0x28]
movsx eax, byte [ebp - 0x11]
imul eax, edx
mov dword [ebp - 0x64], eax
movzx ecx, word [ebp - 0x1c]
add ecx, dword [ebp - 0x68]
movzx edx, word [ebp - 0x1c]
sub edx, ecx
mov word [ebp - 0x1c], dx
movzx eax, byte [0x100d304f]
sub eax, dword [0x100d3170]
movzx ecx, byte [0x100d304f]
add ecx, eax
mov byte [0x100d304f], cl
movsx edx, word [0x100d312c]
add edx, 0x35
mov dword [ebp - 0x50], edx
cmp dword [ebp - 0x64], 0
je 0x10037aa3
movzx eax, word [0x100d315c]
mov dword [ebp - 0x148], eax
jmp 0x10037ab0
movsx ecx, word [0x100d312c]
mov dword [ebp - 0x148], ecx
mov eax, dword [ebp - 0x148]
cdq
mov dword [0x100d31a0], eax
mov dword [0x100d31a4], edx
jmp 0x10037bb2
movzx edx, byte [0x100d3063]
test edx, edx
je 0x10037ae6
mov eax, dword [ebp - 0x58]
or eax, dword [ebp - 0x54]
je 0x10037ae6
mov dword [ebp - 0x14c], 1
jmp 0x10037af0
mov dword [ebp - 0x14c], 0
cmp dword [ebp - 0x3c], 0
jne 0x10037b0a
xor ecx, ecx
mov dword [ebp - 0x48c], 1
mov dword [ebp - 0x488], ecx
jmp 0x10037b15
xorps xmm0, xmm0
movlpd qword [ebp - 0x48c], xmm0
mov edx, dword [ebp - 0x488]
cmp edx, dword [0x100d314c]
jg 0x10037b3f
jl 0x10037b33
mov eax, dword [ebp - 0x48c]
cmp eax, dword [0x100d3148]
ja 0x10037b3f
mov dword [ebp - 0x150], 1
jmp 0x10037b49
mov dword [ebp - 0x150], 0
mov ecx, dword [ebp - 0x14c]
cmp ecx, dword [ebp - 0x150]
jl 0x10037bb2
mov edx, dword [0x100d3188]
sub edx, 0xdce
mov word [ebp - 0x30], dx
mov ecx, dword [0x100d3198]
mov esi, dword [0x100d319c]
movsx eax, word [ebp - 0x24]
cdq
mov edi, eax
mov ebx, edx
add edi, ecx
adc ebx, esi
movsx eax, word [ebp - 0x24]
cdq
push ebx
push edi
push edx
push eax
call fcn.100a25b0
mov word [ebp - 0x24], ax
mov dx, word [0x100d3c78]
mov word [ebp - 0x38], dx
mov byte [ebp - 0x15], 0x39
movsx eax, byte [0x100d3026]
sub eax, 0x5da3a562
mov dword [0x100d31b4], eax
mov ecx, dword [ebp - 0xc0]
add ecx, 0x772
mov dword [ebp - 0x4e8], ecx
mov edx, dword [ebp - 0x3c]
or edx, dword [ebp - 0x40]
cmp edx, dword [ebp - 0x40]
jne 0x10037bdb
mov dword [ebp - 0x154], 1
jmp 0x10037be5
mov dword [ebp - 0x154], 0
mov eax, dword [ebp - 0x64]
add eax, 0x301cd73c
jne 0x10037c07
movsx ecx, byte [ebp - 0x11]
movsx edx, word [ebp - 0x2c]
cmp edx, ecx
jge 0x10037c07
mov dword [ebp - 0x158], 0
jmp 0x10037c11
mov dword [ebp - 0x158], 1
mov eax, dword [ebp - 0x154]
cmp eax, dword [ebp - 0x158]
jge 0x10037d0b
movsx eax, byte [ebp - 0x11]
cdq
mov ecx, dword [0x100d31a0]
mov esi, dword [0x100d31a4]
sub ecx, eax
sbb esi, edx
mov edx, dword [0x100d31a0]
mov eax, dword [0x100d31a4]
add edx, ecx
adc eax, esi
mov dword [0x100d31a0], edx
mov dword [0x100d31a4], eax
movsx ecx, word [ebp - 0x30]
test ecx, ecx
jne 0x10037c66
mov dword [ebp - 0x15c], 1
jmp 0x10037c70
mov dword [ebp - 0x15c], 0
movzx edx, word [ebp - 0x20]
test edx, edx
jne 0x10037c84
mov dword [ebp - 0x160], 1
jmp 0x10037c8e
mov dword [ebp - 0x160], 0
mov eax, dword [ebp - 0x15c]
imul eax, dword [ebp - 0x160]
mov word [ebp - 0x1c], ax
mov ecx, dword [ebp - 0x58]
sub ecx, 0x5d
movzx eax, byte [ebp - 0x12]
cdq
add eax, ecx
mov byte [ebp - 0x12], al
mov ecx, dword [0x100d31a8]
mov edx, dword [0x100d31ac]
mov dword [ebp - 0x7a0], edx
movsx eax, byte [ebp - 0x14]
cdq
add eax, ecx
mov byte [ebp - 0x12], al
mov eax, dword [0x100d3190]
cdq
mov ecx, dword [0x100d3160]
sub ecx, eax
mov eax, dword [0x100d3164]
sbb eax, edx
mov dword [0x100d3160], ecx
mov dword [0x100d3164], eax
mov ecx, dword [0x100d3198]
mov edx, dword [0x100d319c]
mov dword [ebp - 0x7a4], edx
add ecx, 0xd803d990
mov dword [0x100d3158], ecx
jmp 0x10037d81
cmp dword [0x100d31b4], 0
je 0x10037d81
movsx eax, word [0x100d3130]
sar eax, 3
mov byte [0x100d3026], al
mov eax, dword [0x100d3134]
cdq
add eax, 0x2ecbfcdf
mov byte [0x100d304e], al
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x6c8], ecx
mov dword [ebp - 0x6c4], edx
mov eax, dword [ebp - 0x6c8]
or eax, dword [ebp - 0x6c4]
je 0x10037d5e
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x164], ecx
jmp 0x10037d6a
mov edx, dword [0x100d3174]
mov dword [ebp - 0x164], edx
mov ax, word [ebp - 0x164]
mov word [ebp - 0x34], ax
mov ecx, dword [ebp - 0x64]
add ecx, 0x70
mov dword [0x100d3174], ecx
mov edx, dword [ebp - 0xc0]
add edx, 0x792
mov dword [ebp - 0x4ec], edx
mov dword [ebp - 0x3c], 2
movzx eax, word [ebp - 0x20]
xor eax, 0x30
movsx ecx, word [ebp - 0x2c]
imul ecx, eax
mov word [ebp - 0x2c], cx
movsx eax, word [ebp - 0x30]
cdq
mov ecx, eax
add ecx, 0x65bc6871
movsx eax, word [0x100d3128]
cdq
sub eax, ecx
mov word [0x100d3128], ax
movsx edx, byte [ebp - 0x17]
mov eax, dword [0x100d3140]
add eax, edx
mov dword [0x100d3140], eax
movsx ecx, word [ebp - 0x30]
test ecx, ecx
jne 0x10037ded
mov dword [ebp - 0x168], 1
jmp 0x10037df7
mov dword [ebp - 0x168], 0
movsx eax, byte [ebp - 0x14]
sub eax, dword [ebp - 0x168]
cdq
mov ecx, dword [ebp - 0x58]
or ecx, 0xc820
mov esi, dword [ebp - 0x54]
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov byte [0x100d3026], al
movsx edx, byte [ebp - 0x11]
sub edx, 0x6dafded3
mov word [ebp - 0x2c], dx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
je 0x10037e5b
cmp dword [ebp - 0xbc], 1
je 0x10037f35
cmp dword [ebp - 0xbc], 2
je 0x10037fe0
jmp 0x10038077
mov eax, dword [0x100d3134]
cdq
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
push esi
push ecx
push eax
push edx
call fcn.100a25b0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
movsx ecx, word [ebp - 0x30]
sub ecx, dword [ebp - 0x64]
xor edx, edx
mov eax, dword [0x100d31a8]
mov esi, dword [0x100d31ac]
add eax, ecx
adc esi, edx
mov dword [ebp - 0x6d0], eax
mov dword [ebp - 0x6cc], esi
mov ecx, dword [ebp - 0x6d0]
or ecx, dword [ebp - 0x6cc]
jne 0x10037ec6
xor edx, edx
mov dword [ebp - 0x494], 1
mov dword [ebp - 0x490], edx
jmp 0x10037ed1
xorps xmm0, xmm0
movlpd qword [ebp - 0x494], xmm0
mov eax, dword [ebp - 0x494]
mov ecx, dword [ebp - 0x490]
mov dword [0x100d3180], eax
mov dword [0x100d3184], ecx
movzx eax, byte [0x100d304f]
cdq
mov ecx, eax
add ecx, dword [0x100d3168]
movzx eax, byte [0x100d304f]
cdq
add eax, ecx
mov byte [0x100d304f], al
mov dx, word [0x100d3c78]
mov word [ebp - 0x24], dx
mov ax, word [ebp - 0x70]
mov ecx, 2
imul edx, ecx, 0x103d
mov word [edx + 0x10196a80], ax
mov al, byte [ebp - 0x12]
add al, 1
mov byte [ebp - 0x12], al
jmp 0x10038077
movzx ecx, byte [0x100d3063]
add ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [0x100d3180]
mov esi, dword [0x100d3184]
movzx eax, word [ebp - 0x20]
cdq
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov ecx, eax
movzx eax, word [ebp - 0x20]
cdq
or eax, ecx
mov word [ebp - 0x20], ax
movzx edx, byte [0x100d3063]
test edx, edx
jne 0x10037f80
mov dword [ebp - 0x16c], 1
jmp 0x10037f8a
mov dword [ebp - 0x16c], 0
mov ecx, dword [0x100d3180]
mov esi, dword [0x100d3184]
mov eax, dword [0x100d3190]
cdq
xor eax, ecx
xor edx, esi
mov ecx, dword [0x100d3188]
xor ecx, dword [0x100d3188]
mov esi, dword [0x100d318c]
xor esi, dword [0x100d318c]
add ecx, eax
adc esi, edx
movsx eax, word [0x100d312c]
add eax, dword [ebp - 0x16c]
not eax
cdq
add eax, ecx
adc edx, esi
mov dword [0x100d31a8], eax
mov dword [0x100d31ac], edx
jmp 0x10038077
mov dl, byte [ebp - 0x14]
sub dl, 1
mov byte [ebp - 0x14], dl
movzx eax, word [ebp - 0x20]
cdq
push 0x609ad
push 0xe2568e9c
push edx
push eax
call fcn.100a25b0
add eax, dword [0x100d3150]
adc edx, dword [0x100d3154]
mov dword [0x100d3150], eax
mov dword [0x100d3154], edx
movsx eax, byte [ebp - 0x14]
cdq
mov ecx, dword [0x100d31a8]
mov esi, dword [0x100d31ac]
add ecx, eax
adc esi, edx
mov edx, dword [0x100d31a8]
mov eax, dword [0x100d31ac]
sub edx, ecx
sbb eax, esi
mov dword [0x100d31a8], edx
mov dword [0x100d31ac], eax
movzx ecx, byte [0x100d3027]
movsx edx, word [ebp - 0x34]
imul edx, ecx
mov word [ebp - 0x34], dx
mov eax, dword [ebp - 0x64]
xor ecx, ecx
push ecx
push eax
mov edx, dword [ebp - 0x54]
push edx
mov eax, dword [ebp - 0x58]
push eax
call fcn.100a25b0
add eax, dword [ebp - 0x58]
adc edx, dword [ebp - 0x54]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
mov ecx, dword [ebp - 0xc0]
add ecx, 0x682
mov dword [ebp - 0x7a8], ecx
movzx edx, byte [0x100d3063]
movsx eax, word [ebp - 0x24]
cmp eax, edx
jg 0x100380a4
mov dword [ebp - 0x170], 1
jmp 0x100380ae
mov dword [ebp - 0x170], 0
movsx ecx, word [ebp - 0x24]
cmp ecx, 0x48
jg 0x100380c3
mov dword [ebp - 0x174], 1
jmp 0x100380cd
mov dword [ebp - 0x174], 0
mov edx, dword [ebp - 0x170]
cmp edx, dword [ebp - 0x174]
je 0x100381dd
mov eax, dword [0x100d31a8]
mov ecx, dword [0x100d31ac]
push 0
push 0xaf
push ecx
push eax
call fcn.100a25b0
mov dword [ebp - 0x50], eax
movsx eax, byte [0x100d3026]
cdq
push edx
push eax
mov edx, dword [0x100d3124]
push edx
mov eax, dword [0x100d3120]
push eax
call fcn.100a25b0
mov dword [ebp - 0x6d8], eax
mov dword [ebp - 0x6d4], edx
mov ecx, dword [ebp - 0x6d8]
or ecx, dword [ebp - 0x6d4]
jne 0x10038145
xor edx, edx
mov dword [ebp - 0x49c], 1
mov dword [ebp - 0x498], edx
jmp 0x10038150
xorps xmm0, xmm0
movlpd qword [ebp - 0x49c], xmm0
mov eax, dword [0x100d31ac]
mov ecx, dword [ebp - 0x40]
xor edx, edx
add ecx, dword [0x100d31a8]
adc edx, eax
and ecx, dword [ebp - 0x49c]
and edx, dword [ebp - 0x498]
mov dword [0x100d31a8], ecx
mov dword [0x100d31ac], edx
movsx eax, word [ebp - 0x30]
cdq
mov ecx, dword [ebp - 0x58]
sub ecx, 0x70
mov esi, dword [ebp - 0x54]
sbb esi, 0
xor ecx, eax
xor esi, edx
push 0
push 0x9aad07e0
push esi
push ecx
call fcn.100a25b0
not eax
not edx
mov dword [0x100d3150], eax
mov dword [0x100d3154], edx
mov edx, dword [ebp - 0x3c]
shl edx, 6
mov dword [ebp - 0x50], edx
mov eax, dword [0x100d31b4]
xor ecx, ecx
sub eax, 0x2e2d6aab
sbb ecx, 0x29dac
mov edx, dword [0x100d3170]
xor esi, esi
push ecx
push eax
push esi
push edx
call fcn.100a25b0
mov dword [0x100d3170], eax
movsx eax, byte [ebp - 0x14]
imul eax, dword [ebp - 0x40]
movsx ecx, byte [ebp - 0x14]
and ecx, eax
mov byte [ebp - 0x14], cl
mov edx, dword [ebp - 0x4c]
xor eax, eax
mov dword [0x100d31a0], edx
mov dword [0x100d31a4], eax
mov cl, byte [ebp - 0x12]
mov edx, 1
imul eax, edx, 0xb
mov byte [eax + 0x1019a1f0], cl
mov ecx, dword [ebp - 0x50]
xor edx, edx
add ecx, dword [0x100d3160]
adc edx, dword [0x100d3164]
not ecx
not edx
mov dword [0x100d3188], ecx
mov dword [0x100d318c], edx
movsx eax, byte [ebp - 0x15]
movzx ecx, byte [0x100d3027]
movsx edx, word [ebp - 0x2c]
sub edx, ecx
or edx, eax
mov word [ebp - 0x20], dx
call dword [sym.imp.USER32.dll_GetCaretBlinkTime]
mov word [ebp - 0x38], ax
push 3
push 0x20
push 0
push 0x7f
call fcn.10058a50
add esp, 0x10
cbw
mov word [0x100d312c], ax
movsx ecx, word [0x100d312c]
test ecx, ecx
jl 0x100382c8
movsx edx, word [0x100d31b0]
mov eax, dword [0x100d311c]
add eax, edx
mov ecx, dword [0x100d311c]
imul ecx, eax
mov dword [0x100d311c], ecx
mov dl, byte [0x100d3c78]
mov byte [ebp - 0x15], dl
mov eax, 0x89cd
mov word [ebp - 0x20], ax
movzx ecx, byte [ebp - 0x16]
mov edx, dword [0x100d311c]
imul edx, ecx
mov eax, dword [0x100d311c]
imul eax, edx
mov dword [0x100d311c], eax
mov cx, word [0x100d3c78]
mov word [ebp - 0x28], cx
mov edx, dword [ebp - 0x17c]
sub edx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x67c]
sub eax, dword [ebp - 0x178]
add eax, dword [ebp - 0x17c]
cmp eax, edx
je 0x10038a50
mov ecx, dword [0x100d3144]
xor edx, edx
mov dword [ebp - 0x6e0], ecx
mov dword [ebp - 0x6dc], edx
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x6e0]
jne 0x10038324
mov ecx, dword [ebp - 0x44]
cmp ecx, dword [ebp - 0x6dc]
jne 0x10038324
mov dword [ebp - 0x180], 1
jmp 0x1003832e
mov dword [ebp - 0x180], 0
cmp dword [ebp - 0x48], 0x1a
jne 0x10038346
cmp dword [ebp - 0x44], 0
jne 0x10038346
mov dword [ebp - 0x184], 1
jmp 0x10038350
mov dword [ebp - 0x184], 0
mov edx, dword [ebp - 0x180]
cmp edx, dword [ebp - 0x184]
je 0x100383e4
movzx eax, byte [0x100d3027]
mov ecx, dword [0x100d3134]
sub ecx, eax
add ecx, dword [0x100d3134]
mov dword [0x100d3134], ecx
xor edx, edx
mov dword [0x100d3198], 0xc0
mov dword [0x100d319c], edx
mov eax, dword [0x100d31a8]
mov ecx, dword [0x100d31ac]
push 0xae632
push 0x690f1d96
push ecx
push eax
call fcn.100a25b0
add eax, dword [ebp - 0x48]
adc edx, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
mov edx, 2
imul eax, edx, 0x3220
movzx ecx, word [eax + 0x10290588]
mov dword [0x100d311c], ecx
movsx eax, word [ebp - 0x30]
xor eax, 0xbdad
cdq
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
jmp 0x100384a1
mov edx, dword [0x100d3180]
mov eax, dword [0x100d3184]
mov dword [ebp - 0x6e8], edx
mov dword [ebp - 0x6e4], eax
mov ecx, dword [ebp - 0x6e8]
or ecx, dword [ebp - 0x6e4]
je 0x10038417
mov edx, dword [0x100d3170]
mov dword [ebp - 0x188], edx
jmp 0x10038424
movzx eax, byte [0x100d3027]
mov dword [ebp - 0x188], eax
mov cx, word [ebp - 0x188]
mov word [ebp - 0x28], cx
movzx edx, word [0x100d3178]
imul eax, edx, 0x4ff76fe6
cdq
mov dword [0x100d3150], eax
mov dword [0x100d3154], edx
movsx eax, word [0x100d3130]
add eax, dword [ebp - 0x50]
xor eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
movzx ecx, byte [ebp - 0x16]
add ecx, 0xad
mov edx, dword [ebp - 0x3c]
sub edx, ecx
mov dword [ebp - 0x3c], edx
movzx eax, word [0x100d315c]
mov ecx, 0x245e
sub ecx, eax
movzx eax, byte [ebp - 0x12]
not eax
sub eax, ecx
cdq
mov edx, dword [0x100d3190]
xor edx, 0xb7bb173a
mov ecx, dword [ebp - 0x70]
sub ecx, dword [0x100d3174]
add ecx, edx
sub ecx, eax
mov word [0x100d3178], cx
mov ecx, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
mov dword [ebp - 0x7ac], edx
movsx eax, word [ebp - 0x28]
cdq
mov esi, eax
add esi, ecx
movsx eax, word [ebp - 0x28]
cdq
sub eax, esi
mov word [ebp - 0x28], ax
mov eax, dword [0x100d31a0]
mov ecx, dword [0x100d31a4]
mov edx, dword [0x100d316c]
push edx
mov edx, dword [0x100d3168]
push edx
push ecx
push eax
call fcn.100a25b0
mov dword [0x100d31a0], eax
mov dword [0x100d31a4], edx
movzx eax, byte [ebp - 0x16]
cdq
sub eax, dword [0x100d3148]
mov byte [ebp - 0x16], al
cmp dword [0x100d31b4], 0
je 0x1003851f
movzx eax, byte [0x100d3063]
cdq
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x3a0], edx
jmp 0x10038531
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x3a0], ecx
mov dl, byte [ebp - 0x3a4]
mov byte [ebp - 0x12], dl
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov dword [0x100d3150], eax
mov dword [0x100d3154], ecx
xor edx, edx
mov byte [ebp - 0x76], dl
push 0x104
lea eax, [ebp - 0x1960]
push eax
lea ecx, [ebp - 0x8be]
push ecx
lea ecx, [ebp - 0x76]
call fcn.10002850
mov ecx, eax
call fcn.10052040
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x10038a50
movsx edx, word [ebp - 0x28]
movsx eax, byte [ebp - 0x15]
cmp eax, edx
jge 0x10038611
mov ecx, dword [ebp - 0x40]
xor ecx, dword [0x100d3170]
mov edx, dword [ebp - 0x40]
sub edx, ecx
mov dword [ebp - 0x40], edx
mov byte [0x100d3063], 0x19
mov eax, dword [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x70]
push ecx
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x48]
push eax
call fcn.100a25b0
push edx
push eax
mov ecx, dword [ebp - 0x44]
push ecx
mov edx, dword [ebp - 0x48]
push edx
call fcn.100a25b0
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
mov ecx, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
mov dword [ebp - 0x7b0], edx
movsx eax, byte [ebp - 0x13]
cdq
mov esi, eax
xor esi, ecx
movsx eax, byte [ebp - 0x13]
cdq
or eax, esi
mov byte [ebp - 0x13], al
mov eax, 0x1d573
mov dword [0x100d31a0], 0x20ce14a7
mov dword [0x100d31a4], eax
jmp 0x100386d8
mov ecx, dword [0x100d3138]
or ecx, dword [0x100d313c]
je 0x100386d8
movsx edx, word [ebp - 0x28]
sub edx, dword [0x100d3174]
mov word [ebp - 0x28], dx
push 0
push 0xf3
mov eax, dword [ebp - 0x54]
push eax
mov ecx, dword [ebp - 0x58]
push ecx
call fcn.100a25b0
mov dword [0x100d3180], eax
mov dword [0x100d3184], edx
movsx edx, word [0x100d3130]
movzx eax, word [0x100d3178]
sub eax, edx
mov word [0x100d3178], ax
mov ecx, dword [0x100d3158]
add ecx, 0x4a
mov word [ebp - 0x38], cx
movzx edx, word [0x100d315c]
test edx, edx
jne 0x10038692
xor eax, eax
mov dword [ebp - 0x3ac], 1
mov dword [ebp - 0x3a8], eax
jmp 0x1003869d
xorps xmm0, xmm0
movlpd qword [ebp - 0x3ac], xmm0
movzx eax, word [ebp - 0x38]
cdq
mov esi, eax
mov ecx, dword [0x100d31a8]
mov edi, dword [0x100d31ac]
movsx eax, byte [ebp - 0x14]
cdq
push edi
push ecx
push edx
push eax
call fcn.100a25b0
mov ecx, dword [ebp - 0x3a8]
push ecx
mov ecx, dword [ebp - 0x3ac]
push ecx
push edx
push eax
call fcn.100a25b0
add eax, esi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 4], 2
movzx edx, byte [ebp - 0x17]
push edx
push 0
movzx eax, byte [ebp - 0x30]
push eax
push 8
call fcn.10058a50
add esp, 0x10
mov byte [ebp - 0x77], al
movsx ecx, byte [ebp - 0x77]
mov dword [0x100d3144], ecx
cmp dword [0x100d3144], 0
je 0x100388fa
mov dword [ebp - 0xc4], 0xe0c
mov edx, dword [0x100d3198]
mov eax, dword [0x100d319c]
mov dword [ebp - 0x7b4], eax
xor edx, 0x46
mov word [0x100d31b0], dx
mov ecx, dword [ebp - 0x70]
or ecx, dword [ebp - 0x6c]
je 0x1003874f
mov edx, dword [ebp - 0x64]
xor eax, eax
mov dword [ebp - 0x3b4], edx
mov dword [ebp - 0x3b0], eax
jmp 0x10038761
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x3b4], ecx
mov dword [ebp - 0x3b0], edx
mov eax, dword [ebp - 0x3b4]
mov dword [0x100d3140], eax
mov byte [ebp - 0x11], 0xb3
cmp dword [0x100d3140], 0
jne 0x10038785
mov dword [ebp - 0x18c], 1
jmp 0x1003878f
mov dword [ebp - 0x18c], 0
movzx eax, byte [0x100d3063]
cdq
mov ecx, dword [0x100d31a8]
mov esi, dword [0x100d31ac]
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x38]
and eax, dword [ebp - 0x18c]
cdq
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov byte [ebp - 0x16], al
mov ecx, dword [0x100d31a0]
mov esi, dword [0x100d31a4]
mov eax, dword [ebp - 0x68]
cdq
add eax, ecx
adc edx, esi
mov dword [0x100d31a8], eax
mov dword [0x100d31ac], edx
cmp dword [ebp - 0xc4], 0xd68
jle 0x100388f5
mov eax, dword [ebp - 0x3c]
cdq
add eax, 0xd710e6b4
mov dword [0x100d3144], eax
mov dl, byte [ebp - 0x14]
sub dl, 1
mov byte [ebp - 0x14], dl
movsx eax, word [0x100d3130]
cdq
push 0xe0ac1
push 0xf38ed715
push edx
push eax
call fcn.100a25b0
mov byte [ebp - 0x16], al
mov eax, dword [0x100d3198]
mov ecx, dword [0x100d319c]
push 0x226e
push 0xf2ebbd5a
push ecx
push eax
call fcn.100a25b0
mov dword [ebp - 0x524], eax
mov dword [ebp - 0x520], edx
mov edx, dword [ebp - 0x524]
or edx, dword [ebp - 0x520]
jne 0x1003886b
mov dword [ebp - 0x190], 1
jmp 0x10038875
mov dword [ebp - 0x190], 0
movzx eax, word [ebp - 0x1c]
movzx ecx, word [ebp - 0x20]
imul ecx, eax
add ecx, dword [ebp - 0x190]
jne 0x10038894
mov dword [ebp - 0x198], 1
jmp 0x1003889e
mov dword [ebp - 0x198], 0
mov edx, dword [0x100d311c]
add edx, 0x69d1e7da
jne 0x100388b8
mov dword [ebp - 0x194], 1
jmp 0x100388c2
mov dword [ebp - 0x194], 0
movzx eax, word [ebp - 0x38]
movzx ecx, word [ebp - 0x1c]
add ecx, eax
imul ecx, dword [ebp - 0x194]
mov edx, dword [ebp - 0x198]
sub edx, ecx
mov byte [0x100d304f], dl
mov eax, dword [ebp - 0xc4]
sub eax, 1
mov dword [ebp - 0xc4], eax
jmp 0x100387e6
jmp 0x1003898a
mov ecx, dword [0x100d3180]
mov esi, dword [0x100d3184]
movsx eax, word [ebp - 0x24]
cdq
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov ecx, eax
movsx eax, word [ebp - 0x24]
cdq
sub eax, ecx
mov word [ebp - 0x24], ax
movsx edx, word [0x100d31b0]
movzx eax, word [ebp - 0x38]
xor eax, edx
movzx ecx, word [ebp - 0x38]
sub ecx, eax
mov word [ebp - 0x38], cx
movsx edx, byte [0x100d304e]
movzx eax, word [ebp - 0x20]
add eax, edx
movzx ecx, word [ebp - 0x20]
add ecx, eax
mov word [ebp - 0x20], cx
movsx edx, word [0x100d312c]
mov eax, 4
imul ecx, eax, 0x1c6c
mov dword [ecx + 0x10129e80], edx
mov edx, dword [0x100d3144]
not edx
mov byte [0x100d304e], dl
movsx eax, byte [ebp - 0x17]
sub eax, 0xd9
cdq
mov dword [0x100d3148], eax
mov dword [0x100d314c], edx
jmp 0x10038a39
mov dword [ebp - 4], 0xffffffff
jmp 0x10038a49
xor eax, eax
jmp 0x1003edbd
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x100d3190], eax
cmp dword [0x100d3190], 0
jl 0x10038c2f
mov edx, dword [ebp - 0x40]
cmp edx, dword [ebp - 0x40]
ja 0x10038a7c
mov dword [ebp - 0x1a0], 1
jmp 0x10038a86
mov dword [ebp - 0x1a0], 0
cmp dword [ebp - 0x40], 0x18
ja 0x10038a98
mov dword [ebp - 0x1a4], 1
jmp 0x10038aa2
mov dword [ebp - 0x1a4], 0
mov eax, dword [ebp - 0x1a0]
cmp eax, dword [ebp - 0x1a4]
jle 0x10038b17
mov ecx, dword [0x100d3140]
add ecx, 0xe701
mov word [0x100d315c], cx
mov edx, 0x5e78
mov word [ebp - 0x1c], dx
mov eax, dword [ebp - 0x50]
sub eax, 0x2fc565f9
mov byte [ebp - 0x14], al
mov ecx, dword [ebp - 0x58]
sub ecx, 0x60
mov edx, dword [ebp - 0x54]
sbb edx, 0
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], edx
movzx eax, byte [ebp - 0x12]
cdq
mov ecx, eax
mov esi, dword [0x100d3180]
mov edx, dword [0x100d3184]
mov dword [ebp - 0x7b8], edx
movsx eax, byte [0x100d304e]
cdq
xor eax, esi
xor eax, ecx
mov word [ebp - 0x28], ax
jmp 0x10038c2d
movsx eax, byte [ebp - 0x13]
test eax, eax
jne 0x10038b27
movsx ecx, byte [ebp - 0x15]
test ecx, ecx
je 0x10038b76
movzx edx, word [0x100d315c]
movzx eax, byte [ebp - 0x12]
add eax, edx
mov byte [ebp - 0x12], al
movsx ecx, byte [ebp - 0x14]
imul edx, ecx, 0x3946
mov dword [ebp - 0x64], edx
movsx eax, byte [ebp - 0x14]
mov ecx, dword [0x100d3140]
xor ecx, eax
mov word [ebp - 0x34], cx
movzx edx, word [ebp - 0x38]
imul eax, edx, 0xcb
mov word [0x100d312c], ax
movzx ecx, byte [ebp - 0x12]
sub ecx, 0x71
mov byte [0x100d3027], cl
jmp 0x10038c2d
movsx edx, byte [0x100d3026]
test edx, edx
je 0x10038c2d
movsx eax, word [ebp - 0x34]
cdq
push 0xcbea
push 0xe68c29bb
push edx
push eax
call fcn.100a25b0
mov dword [ebp - 0x3c], eax
cmp dword [0x100d311c], 0
jne 0x10038bb3
mov dword [ebp - 0x1a8], 1
jmp 0x10038bbd
mov dword [ebp - 0x1a8], 0
mov eax, dword [ebp - 0x3c]
imul eax, dword [0x100d3170]
movsx ecx, byte [0x100d3026]
add ecx, dword [ebp - 0x1a8]
add ecx, eax
xor ecx, dword [0x100d3120]
mov dword [0x100d31b4], ecx
push 0x3e7b9
push 0x6d7ca6f8
mov edx, dword [ebp - 0x6c]
push edx
mov eax, dword [ebp - 0x70]
push eax
call fcn.100a25b0
mov word [0x100d3178], ax
mov ecx, 0xc65b5
mov dword [0x100d3148], 0x33bfd455
mov dword [0x100d314c], ecx
movsx eax, byte [ebp - 0x15]
cdq
mov edx, 8
imul ecx, edx, 0xd2
sub eax, dword [ecx + 0x10180ea0]
mov byte [ebp - 0x15], al
jmp 0x10038c8e
movsx edx, word [ebp - 0x24]
test edx, edx
je 0x10038c8e
mov eax, 4
mov word [0x100d312c], ax
push 0xe9c31
push 0x3a646ad9
mov ecx, dword [0x100d3124]
push ecx
mov edx, dword [0x100d3120]
push edx
call fcn.100a25b0
mov dword [0x100d3134], eax
mov eax, dword [0x100d3148]
mov ecx, dword [0x100d314c]
mov dword [0x100d3168], eax
mov dword [0x100d316c], ecx
movsx edx, word [ebp - 0x34]
add edx, 0x7936c8ef
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x64], 0xc1749d76
xor eax, eax
mov byte [ebp - 0x78], al
push 0x104
lea ecx, [ebp - 0x1758]
push ecx
lea edx, [ebp - 0x91e]
push edx
lea ecx, [ebp - 0x78]
call fcn.10002ae0
mov ecx, eax
call fcn.10051f40
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x10039d3e
mov eax, dword [ebp - 0x4c]
cmp eax, dword [0x100d3170]
jbe 0x1003921a
movsx cx, byte [0x100d3026]
movzx edx, cx
push edx
push 0x33
push 0
push 0
call fcn.1005c780
add esp, 0x10
mov word [ebp - 0x2c], ax
movsx eax, word [ebp - 0x2c]
test eax, eax
je 0x10039023
mov byte [ebp - 0x11], 4
movsx ecx, word [0x100d31b0]
imul edx, ecx, 0xa534375d
mov word [ebp - 0x24], dx
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
not eax
not ecx
mov edx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
sub edx, eax
sbb esi, ecx
mov dword [0x100d31a0], edx
mov dword [0x100d31a4], esi
movzx eax, byte [ebp - 0x12]
imul eax, dword [0x100d311c]
mov byte [ebp - 0x12], al
movsx ecx, word [ebp - 0x2c]
movsx edx, word [0x100d312c]
add edx, ecx
not edx
imul edx, dword [0x100d3140]
movsx eax, byte [ebp - 0x17]
movzx ecx, word [ebp - 0x20]
sub ecx, eax
mov eax, dword [ebp - 0x4c]
sub eax, ecx
sub eax, edx
mov dword [ebp - 0x64], eax
mov ecx, dword [0x100d3c78]
mov dword [ebp - 0x50], ecx
movsx edx, word [ebp - 0x28]
test edx, edx
jne 0x10038d87
mov dword [ebp - 0x1ac], 1
jmp 0x10038d91
mov dword [ebp - 0x1ac], 0
mov eax, dword [ebp - 0x1ac]
mov dword [0x100d3134], eax
movsx ecx, byte [ebp - 0x11]
mov dword [ebp - 0x1b0], ecx
cmp dword [ebp - 0x1b0], 4
ja case.default.0x10038db9
mov edx, dword [ebp - 0x1b0]
jmp dword [edx*4 + 0x1003edd0]
mov eax, dword [0x100d3188]
mov dword [0x100d3190], eax
movsx ecx, byte [0x100d3026]
add ecx, dword [0x100d31b4]
movzx edx, word [ebp - 0x20]
imul eax, edx, 0x5b7e7bc0
add eax, ecx
mov dword [ebp - 0x50], eax
mov ecx, dword [0x100d31a8]
mov edx, dword [0x100d31ac]
push edx
push ecx
mov eax, dword [0x100d3164]
push eax
mov ecx, dword [0x100d3160]
push ecx
call fcn.100a25b0
mov dword [0x100d3160], eax
mov dword [0x100d3164], edx
mov edx, dword [0x100d3174]
xor edx, 0xcb
movzx eax, byte [0x100d3027]
imul eax, edx
mov byte [0x100d3027], al
mov ecx, dword [0x100d3174]
shl ecx, 4
mov dword [0x100d3174], ecx
jmp case.default.0x10038db9
mov edx, dword [0x100d3190]
sub edx, 0x2137b90e
movzx eax, word [0x100d3178]
xor eax, edx
mov word [0x100d3178], ax
movsx ecx, byte [ebp - 0x11]
movzx edx, byte [0x100d3063]
sub edx, ecx
mov byte [0x100d3063], dl
mov eax, 0x1315b
mov dword [0x100d31a0], 0x26070d2e
mov dword [0x100d31a4], eax
mov ecx, 4
shl ecx, 0
mov edx, dword [ecx + 0x100f9500]
mov dword [0x100d3170], edx
movsx eax, byte [0x100d304e]
cdq
mov dword [0x100d31a8], eax
mov dword [0x100d31ac], edx
movsx eax, byte [ebp - 0x11]
test eax, eax
je 0x10038ec0
movzx ecx, byte [0x100d3063]
mov dword [ebp - 0x1b4], ecx
jmp 0x10038ec9
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x1b4], edx
mov eax, dword [ebp - 0x1b4]
xor ecx, ecx
mov dword [0x100d3180], eax
mov dword [0x100d3184], ecx
jmp case.default.0x10038db9
mov dx, word [0x100d3130]
sub dx, 1
mov word [0x100d3130], dx
mov ax, word [0x100d3c78]
mov word [ebp - 0x38], ax
movsx ecx, byte [ebp - 0x17]
not ecx
movsx edx, word [ebp - 0x24]
movsx eax, byte [0x100d304e]
sub eax, edx
add eax, ecx
mov dword [0x100d31b4], eax
movzx eax, byte [0x100d3027]
cdq
sub eax, 0x484a5019
sbb edx, 0x6bcb8
or eax, dword [ebp - 0x48]
or edx, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
movzx ecx, byte [0x100d3063]
sub ecx, 0x76c1
mov word [0x100d315c], cx
mov edx, dword [0x100d3174]
sub edx, 0xc48b
xor eax, eax
add edx, dword [0x100d3138]
adc eax, dword [0x100d313c]
mov dword [0x100d3138], edx
mov dword [0x100d313c], eax
jmp case.default.0x10038db9
movsx ecx, byte [0x100d3026]
movsx edx, word [ebp - 0x28]
sub edx, ecx
mov ax, word [ebp - 0x28]
mov cx, dx
shl ax, cl
mov word [ebp - 0x28], ax
movzx ecx, byte [0x100d3027]
sub ecx, dword [ebp - 0x4c]
movzx edx, byte [0x100d3027]
sub edx, ecx
mov byte [0x100d3027], dl
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x7bc], ecx
sub eax, 0xc0d94ae4
mov dword [ebp - 0x3c], eax
movsx edx, byte [ebp - 0x13]
add edx, 0x713e8099
xor eax, eax
mov dword [0x100d3120], edx
mov dword [0x100d3124], eax
mov cl, byte [0x100d304f]
add cl, 1
mov byte [0x100d304f], cl
jmp case.default.0x10038db9
movzx eax, word [ebp - 0x20]
cdq
and eax, 0x802cbe9c
mov word [ebp - 0x1c], ax
movzx edx, word [ebp - 0x38]
movzx eax, word [ebp - 0x20]
sub eax, edx
movzx ecx, word [ebp - 0x20]
add ecx, eax
mov word [ebp - 0x20], cx
mov edx, dword [0x100d3188]
xor edx, dword [0x100d3168]
mov word [ebp - 0x28], dx
mov eax, dword [0x100d3168]
mov dword [ebp - 0x3c], eax
jmp 0x10039215
movzx ecx, word [0x100d315c]
test ecx, ecx
je 0x10039091
mov edx, dword [0x100d3168]
or edx, dword [0x100d316c]
je 0x10039091
movzx eax, byte [0x100d3027]
cdq
push edx
push eax
mov eax, dword [ebp - 0x54]
push eax
mov ecx, dword [ebp - 0x58]
push ecx
call fcn.100a25b0
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
movsx eax, byte [0x100d3026]
cdq
sub eax, 0xf122079b
mov dword [0x100d3158], eax
mov dl, byte [0x100d304e]
add dl, 1
mov byte [0x100d304e], dl
mov eax, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x3c], eax
mov ecx, 0xcb
mov word [ebp - 0x38], cx
jmp 0x10039215
mov edx, dword [0x100d3180]
mov eax, dword [0x100d3184]
mov dword [ebp - 0x6f0], edx
mov dword [ebp - 0x6ec], eax
mov ecx, dword [ebp - 0x6f0]
or ecx, dword [ebp - 0x6ec]
je 0x10039111
movsx edx, byte [ebp - 0x13]
mov eax, dword [0x100d311c]
xor eax, edx
add eax, dword [0x100d3134]
mov dword [ebp - 0x64], eax
mov dword [0x100d31b4], 0x6648d674
mov ecx, dword [0x100d3168]
mov edx, 4
imul eax, edx, 0x85b0
mov dword [eax + 0x100d3d00], ecx
movsx eax, byte [ebp - 0x15]
cdq
sub eax, dword [0x100d3150]
mov byte [ebp - 0x15], al
movsx eax, word [0x100d3128]
cdq
mov dword [0x100d3160], eax
mov dword [0x100d3164], edx
jmp 0x10039215
movzx ecx, byte [0x100d3027]
test ecx, ecx
jne 0x1003912e
cmp dword [ebp - 0x50], 0
jne 0x1003912e
mov dword [ebp - 0x1b8], 0
jmp 0x10039138
mov dword [ebp - 0x1b8], 1
mov edx, dword [0x100d3180]
mov eax, dword [0x100d3184]
mov dword [ebp - 0x6f8], edx
mov dword [ebp - 0x6f4], eax
mov ecx, dword [ebp - 0x6f4]
cmp ecx, dword [0x100d3154]
jb 0x10039179
ja 0x1003916d
mov edx, dword [ebp - 0x6f8]
cmp edx, dword [0x100d3150]
jb 0x10039179
mov dword [ebp - 0x1bc], 1
jmp 0x10039183
mov dword [ebp - 0x1bc], 0
mov eax, dword [ebp - 0x1b8]
cmp eax, dword [ebp - 0x1bc]
jl 0x1003919d
mov dword [ebp - 0x1c0], 1
jmp 0x100391a7
mov dword [ebp - 0x1c0], 0
mov ecx, dword [ebp - 0x1c0]
not ecx
test ecx, ecx
je 0x10039215
mov edx, dword [0x100d3148]
sub edx, 0x1a54
mov eax, dword [0x100d314c]
sbb eax, 0
mov dword [0x100d3150], edx
mov dword [0x100d3154], eax
mov ecx, 0xed84
mov word [ebp - 0x1c], cx
mov edx, dword [0x100d3c78]
mov dword [ebp - 0x4c], edx
mov al, byte [0x100d304e]
mov ecx, 1
imul edx, ecx, 0x8fd0
mov byte [edx + 0x10277950], al
mov eax, 2
mov word [0x100d312c], ax
movzx ecx, byte [ebp - 0x12]
imul edx, ecx, 0x67571cda
mov byte [0x100d3027], dl
jmp 0x100392e7
cmp dword [0x100d3134], 0
je 0x100392e7
mov eax, dword [0x100d31a8]
mov ecx, dword [0x100d31ac]
push ecx
push eax
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x48]
push eax
call fcn.100a25b0
and eax, dword [ebp - 0x48]
and edx, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x68]
cdq
add eax, dword [0x100d3188]
mov word [ebp - 0x38], ax
movzx ecx, word [ebp - 0x20]
test ecx, ecx
jne 0x1003926f
mov dword [ebp - 0x1c8], 1
jmp 0x10039279
mov dword [ebp - 0x1c8], 0
movzx edx, byte [0x100d3027]
test edx, edx
jne 0x10039290
mov dword [ebp - 0x1c4], 1
jmp 0x1003929a
mov dword [ebp - 0x1c4], 0
movsx eax, byte [ebp - 0x17]
sub eax, dword [ebp - 0x1c4]
movsx ecx, byte [ebp - 0x14]
movsx edx, word [ebp - 0x34]
imul edx, ecx
imul edx, eax
imul edx, dword [ebp - 0x1c8]
mov word [ebp - 0x2c], dx
mov eax, dword [0x100d3198]
mov ecx, dword [0x100d319c]
mov edx, dword [ebp - 0x50]
xor esi, esi
push ecx
push eax
push esi
push edx
call fcn.100a25b0
mov ecx, dword [ebp - 0x50]
sub ecx, eax
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x3c]
mov dword [0x100d3140], edx
jmp 0x100392fa
jmp fcn.1003931c