Function at 0x408ec4
Capabilities:
Query or enumerate registry value
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x2b0
call 0x408ed8
pop eax
lea esi, [esp + 0x190]
mov dword [esp + 0xec], ecx
mov edx, str.PROGRAMDATAfind_starcraft_srclib.rsBattle.netAgentproduct.dbEnv_var_PROGRAMDATAx86_starcraft.exeSoftwareBlizzard_EntertainmentStarcraftInstallPath
mov dword [esp + 0x4c], eax
mov ecx, esi
push 0xb
call fcn.0041ba10
add esp, 4
mov eax, dword [esi]
test eax, eax
je 0x408fc5
lea edx, [esp + 0x190]
lea esi, [esp + 0x228]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov ecx, esi
mov edx, 0x43b609
push 0x1b
call fcn.0041ef10
add esp, 4
push esi
call fcn.0041e570
add esp, 4
movaps xmm0, xmmword [0x439280]
mov edi, eax
mov ebx, edx
lea esi, [esp + 0x60]
xor eax, eax
lea ecx, [esp + 0x190]
mov dword [esi + 0x1c], eax
mov word [esi + 0x20], 0
mov dword [esi], eax
mov dword [esi + 4], eax
mov edx, edi
movups xmmword [esi + 0xc], xmm0
mov byte [esi + 0x1c], 1
push esi
push ebx
call fcn.0041e690
add esp, 8
lea eax, [esp + 0x190]
mov esi, dword [eax + 4]
cmp dword [eax], 1
jne 0x40900e
mov eax, ebx
mov ebx, dword [esp + 0x198]
lea ecx, [esp + 0x64]
mov edx, edi
push eax
call fcn.0041eeb0
add esp, 4
lea edx, [esp + 0x64]
mov dword [esp + 0x14], esi
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0xc], edx
xor edx, edx
mov dword [esp + 0x18], eax
inc edx
mov dword [esp + 0x2c], edx
jmp 0x4093a4
mov ecx, 0x13
mov edi, 0x13
call fcn.00428524
lea esi, [esp + 0x60]
mov edx, 0x43b624
mov ecx, esi
mov dword [esi], eax
mov dword [esi + 4], edi
mov dword [esi + 8], 0
push edi
call fcn.0041fa20
add esp, 4
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 8]
mov esi, 5
mov dword [esp + 0xc], eax
jmp 0x4093c2
mov ecx, 0xfa0
mov dword [esp + 0xc], edi
mov dword [esp + 0x18], ebx
call fcn.00428524
lea edi, [esp + 0x60]
mov edx, esi
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], 0xfa0
mov dword [esp + 0xfc], 0
mov ecx, edi
call fcn.0041e850
cmp dword [edi], 1
mov dword [esp + 0x28], esi
jne 0x409077
lea eax, [esp + 0x64]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [eax - 4], 1
push eax
call fcn.0041a280
add esp, 4
xor ebx, ebx
xor esi, esi
jmp 0x40907f
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
xor edi, edi
mov dword [esp + 0x194], edi
mov dword [esp + 0x190], edi
push 1
lea eax, [esp + 0x194]
push eax
push edi
push edi
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x4090b9
mov eax, dword [esp + 0x190]
mov edi, dword [esp + 0x194]
jmp 0x4090de
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x64]
mov dword [ecx + 4], eax
mov dword [ecx], 0
mov dword [ecx - 4], 1
push ecx
call fcn.0041a280
add esp, 4
xor eax, eax
xor ecx, ecx
sub ebx, eax
mov eax, 0xfa0
sbb esi, edi
mov edi, 0
cmovb ebx, ecx
cmp ebx, 0xfa1
jae 0x40a2bd
mov edx, eax
mov dword [esp + 0x10], eax
cmp edi, edx
je 0x4091d4
mov eax, dword [esp + 0xf4]
xor esi, esi
mov ecx, edx
mov dword [esp + 8], edx
mov dword [esp + 0x190], esi
sub ecx, edi
mov dword [esp + 0x24], eax
add eax, edi
push esi
lea edx, [esp + 0x194]
push edx
push ecx
push eax
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x40914b
mov edx, dword [esp + 0x190]
jmp 0x409183
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov esi, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 1
call fcn.0041d380
xor edx, edx
cmp al, 0xb
jne 0x4091c6
lea eax, [esp + 0x64]
push eax
call fcn.0041a280
xor edx, edx
add esp, 4
mov al, 4
mov cl, 1
test cl, cl
jne 0x4091f8
shld ebx, esi, 8
shl esi, 8
movzx eax, al
or eax, esi
mov ecx, ebx
mov esi, eax
call fcn.0041d380
cmp al, 0x23
jne 0x409352
lea eax, [esp + 0x60]
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], ebx
push eax
call fcn.0041a280
add esp, 4
mov edx, dword [esp + 8]
jmp 0x409103
mov ebx, esi
shl esi, 0x18
xor ecx, ecx
xor eax, eax
shr ebx, 8
jmp 0x409187
lea ecx, [esp + 0xf4]
push 0x20
call fcn.004388e0
add esp, 4
mov edx, dword [esp + 0xf8]
mov edi, dword [esp + 0xfc]
jmp 0x40910b
test edx, edx
je 0x40a2f0
add edi, edx
mov edx, dword [esp + 8]
mov dword [esp + 0xfc], edi
cmp edi, edx
jne 0x409103
cmp edx, dword [esp + 0x10]
jne 0x409103
xorps xmm0, xmm0
xor eax, eax
movaps xmmword [esp + 0x70], xmm0
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x100], eax
push eax
lea eax, [esp + 0x104]
push eax
push 0x20
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [esp + 0xc]
test eax, eax
je 0x4092b9
mov esi, dword [esp + 0x100]
test esi, esi
je 0x40a2ec
mov edx, dword [esp + 0x10]
cmp esi, 0x21
jae 0x40b9c3
lea ecx, [esp + 0xf4]
push esi
call fcn.004388e0
add esp, 4
mov edi, dword [esp + 0xfc]
mov eax, dword [esp + 0xf4]
mov ebx, dword [esp + 0xf8]
add eax, edi
push esi
lea ecx, [esp + 0x64]
push ecx
push eax
call fcn.0042c8b0
add esp, 0xc
add edi, esi
mov edx, ebx
mov dword [esp + 0xfc], edi
jmp 0x409103
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov ebx, eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x194], 0
mov dword [esp + 0x190], 1
call fcn.0041d380
cmp al, 0xb
je 0x40a2dc
cmp al, 0x23
mov dword [esp + 0x25c], ebx
mov dword [esp + 0x258], 0
mov dword [esp + 0x254], 1
jne 0x40b3a0
lea eax, [esp + 0x258]
push eax
call fcn.0041a280
add esp, 4
xor eax, eax
mov dword [esp + 0x100], eax
push eax
lea eax, [esp + 0x104]
push eax
push 0x20
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4092b9
jmp 0x409257
mov edi, dword [esp + 0xc]
mov dword [esp + 0x14], esi
lea esi, [esp + 0x64]
mov edx, edi
mov ecx, esi
push dword [esp + 0x18]
call fcn.0041eeb0
add esp, 4
mov eax, dword [esi + 4]
mov edi, dword [esi]
xor ecx, ecx
inc ecx
mov dword [esp + 0x18], eax
mov eax, dword [esi + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
test eax, eax
mov dword [esp + 0x2c], ecx
je 0x409399
mov ecx, dword [esp + 0xf4]
call fcn.0042856a
push dword [esp + 0x28]
call sub.KERNEL32.dll_CloseHandle
mov ecx, edi
cmp dword [esp + 0x22c], 0
je 0x4093be
mov edi, ecx
mov ecx, dword [esp + 0x228]
call fcn.0042856a
mov ecx, edi
mov esi, dword [esp + 0x2c]
mov eax, dword [0x43fc50]
xor edx, edx
xor edi, edi
mov dword [esp + 0x254], esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x258], ecx
cmp edx, 0x15
mov dword [esp + 0x140], edx
mov dword [esp + 0x25c], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x260], edi
mov edi, edx
mov dword [esp + 0x264], esi
mov dword [esp + 0x268], ebx
jae 0x409458
cmp edi, 2
jb 0x409c06
xor ebx, ebx
mov ecx, eax
lea eax, [edi + edi*4]
inc ebx
lea esi, [ecx + eax*4 - 0x28]
sub ebx, edi
mov edi, 2
mov ecx, esi
mov edx, edi
call fcn.0040c6dc
lea eax, [ebx + edi + 1]
inc edi
add esi, 0xffffffec
cmp eax, 2
jne 0x40943d
jmp 0x409c06
mov ecx, edi
mov esi, eax
shr ecx, 1
call fcn.0040c1f1
mov dword [esp + 0xc], eax
mov eax, dword [0x43fc50]
lea ecx, [esp + 0x190]
xor ebx, ebx
mov dword [esp + 0x130], edx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
mov dword [ecx], eax
lea eax, [esi - 0x30]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
mov dword [esp + 0x128], eax
lea eax, [esi - 0x14]
mov dword [esp + 0xf0], eax
mov eax, edi
mov ecx, eax
dec eax
je 0x409608
mov edx, ecx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x4c], ecx
add ecx, 0xfffffffe
lea eax, [eax + eax*4]
mov esi, 0xff
mov dword [esp + 8], ecx
lea ecx, [ecx + ecx*4]
mov edi, dword [edx + ecx*4 + 0xc]
mov ecx, dword [edx + ecx*4 + 0x10]
mov edx, dword [edx + eax*4 + 0xc]
mov dword [esp + 0x18], ecx
shr ecx, 0x10
mov dword [esp + 0x14], ecx
mov ecx, edi
shr ecx, 0x10
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp dx, di
setne cl
cmovb ecx, esi
test cl, cl
jne 0x409527
shr edx, 0x10
xor ecx, ecx
cmp dx, word [esp + 0x24]
setne cl
cmovb ecx, esi
test cl, cl
jne 0x409527
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + eax*4 + 0x10]
xor ecx, ecx
cmp ax, word [esp + 0x18]
setne cl
cmovb ecx, esi
test cl, cl
je 0x40961d
cmp cl, 0xff
je 0x40962b
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x10], edi
mov edi, 2
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x14]
mov word [esp + 0x48], ax
mov eax, dword [esp + 0x18]
mov word [esp + 0x30], ax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], edi
mov esi, eax
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x4c]
sub eax, edi
mov dword [esp + 8], eax
je 0x409612
mov eax, dword [edx + 4]
mov edi, dword [edx]
mov dword [esp + 0x18], eax
shr eax, 0x10
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov eax, edi
shr eax, 0x10
mov dword [esp + 0x24], eax
xor eax, eax
cmp cx, di
mov ecx, 0xff
setne al
cmovb eax, ecx
test al, al
jne 0x4095ed
xor eax, eax
cmp si, word [esp + 0x24]
mov ecx, 0xff
setne al
cmovb eax, ecx
test al, al
jne 0x4095ed
movzx ecx, word [esp + 0x30]
xor eax, eax
cmp cx, word [esp + 0x18]
mov ecx, 0xff
setne al
cmovb eax, ecx
test al, al
jne 0x4095ed
movzx eax, word [esp + 0x48]
cmp ax, word [esp + 0x14]
setne al
jb 0x4095ff
mov ecx, dword [esp + 0x28]
add edx, 0xffffffec
cmp al, 0xff
lea edi, [ecx + 1]
jne 0x40954a
mov ecx, dword [esp + 8]
jmp 0x409787
xor ecx, ecx
xor eax, eax
inc eax
jmp 0x409803
mov eax, dword [esp + 0x4c]
xor ecx, ecx
jmp 0x409803
shr eax, 0x10
cmp ax, word [esp + 0x14]
jae 0x409530
xor ecx, ecx
cmp dword [esp + 8], 0
mov edx, dword [esp + 0x4c]
je 0x4096ec
mov ecx, dword [esp + 0x128]
lea eax, [edx + edx*4]
lea edx, [ecx + eax*4]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov esi, eax
mov dword [esp + 0x28], ecx
shr ecx, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], ecx
shr esi, 0x10
xor ecx, ecx
cmp di, ax
mov edi, 0xff
setne cl
cmovb ecx, edi
test cl, cl
jne 0x40969c
xor ecx, ecx
cmp word [esp + 0x24], si
setne cl
cmovb ecx, edi
test cl, cl
jne 0x40969c
mov eax, dword [esp + 0x28]
xor ecx, ecx
cmp word [esp + 0x18], ax
setne cl
cmovb ecx, edi
test cl, cl
je 0x4096d1
cmp cl, 0xff
mov ecx, dword [esp + 0x30]
jne 0x4096dc
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
add edx, 0xffffffec
mov dword [esp + 0x24], esi
dec eax
test eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, ecx
mov dword [esp + 0x14], eax
jne 0x409649
jmp 0x4096e6
mov ecx, dword [esp + 0x30]
cmp word [esp + 0x14], cx
jb 0x4096a5
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x4c]
jmp 0x4096ec
mov edx, dword [esp + 0x4c]
xor ecx, ecx
mov eax, edx
sub eax, ecx
jb 0x40b9ad
cmp edx, dword [esp + 0x54]
ja 0x40b9b4
cmp eax, 2
jb 0x40978b
mov edx, dword [esp + 0x50]
mov edi, ecx
lea ecx, [ecx + ecx*4]
mov esi, dword [esp + 0xf0]
mov dword [esp + 0x28], eax
shr eax, 1
lea ecx, [edx + ecx*4]
mov edx, dword [esp + 0x4c]
lea edx, [edx + edx*4]
lea edx, [esi + edx*4]
mov esi, dword [ecx + 0x10]
mov dword [esp + 0x70], esi
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm0
mov esi, dword [edx + 0x10]
mov dword [ecx + 0x10], esi
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
add ecx, 0x14
mov esi, dword [esp + 0x70]
mov dword [edx + 0x10], esi
movsd xmm0, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
add edx, 0xffffffec
dec eax
jne 0x40972c
mov ecx, edi
mov eax, dword [esp + 0x28]
test ecx, ecx
je 0x409803
cmp eax, 9
ja 0x409803
mov edx, dword [esp + 0xf0]
xor esi, esi
lea eax, [ecx + ecx*4]
mov ebx, ecx
inc esi
sub esi, ecx
lea edx, [edx + eax*4]
mov ecx, esi
mov dword [esp + 8], ebx
mov esi, ebx
lea edi, [ebx - 1]
mov ebx, dword [esp + 0x4c]
mov eax, ebx
sub eax, edi
jb 0x40b982
cmp ebx, dword [esp + 0x54]
mov dword [esp + 0x28], eax
ja 0x40b998
add ebx, ecx
mov esi, ecx
mov dword [esp + 0x24], edx
mov ecx, edx
mov edx, ebx
call fcn.0040c6dc
cmp dword [esp + 8], 1
mov edx, dword [esp + 0x24]
mov ecx, edi
je 0x4097f8
inc esi
add edx, 0xffffffec
cmp ebx, 0xa
mov ebx, ecx
jb 0x4097a8
mov ebx, dword [esp + 0x198]
mov eax, dword [esp + 0x28]
cmp ebx, dword [esp + 0x194]
jne 0x409829
mov esi, ecx
lea ecx, [esp + 0x190]
mov edx, ebx
mov edi, eax
call fcn.0040c492
mov ebx, dword [esp + 0x198]
mov eax, edi
mov ecx, esi
mov edi, dword [esp + 0x190]
mov dword [esp + 0x134], ecx
mov dword [edi + ebx*8], ecx
mov dword [edi + ebx*8 + 4], eax
inc ebx
cmp ebx, 2
mov dword [esp + 0x198], ebx
jb 0x409bc5
cmp dword [edi + ebx*8 - 8], 0
je 0x409899
mov edx, dword [edi + ebx*8 - 0xc]
mov eax, dword [edi + ebx*8 - 4]
cmp edx, eax
jbe 0x409899
cmp ebx, 3
jb 0x409bc5
lea ecx, [ebx - 3]
mov dword [esp + 8], ebx
mov ebx, dword [edi + ebx*8 - 0x14]
lea esi, [eax + edx]
cmp ebx, esi
mov esi, ebx
jbe 0x4098ab
mov ebx, dword [esp + 8]
cmp ebx, 4
jb 0x409bc5
add edx, esi
cmp dword [edi + ebx*8 - 0x1c], edx
jbe 0x4098af
jmp 0x409bc5
cmp ebx, 3
jb 0x4098b3
mov esi, dword [edi + ebx*8 - 0x14]
mov eax, dword [edi + ebx*8 - 4]
lea ecx, [ebx - 3]
jmp 0x4098af
mov ebx, dword [esp + 8]
cmp esi, eax
jb 0x4098b6
lea ecx, [ebx - 2]
lea eax, [ecx + 1]
cmp ebx, eax
jbe 0x409e9b
cmp ebx, ecx
jbe 0x409ea6
mov ebx, dword [edi + ecx*8 + 4]
mov edx, dword [edi + ecx*8]
mov esi, dword [edi + ecx*8 + 8]
add edx, ebx
mov dword [esp + 0x4c], ebx
mov ebx, edx
sub ebx, esi
jb 0x40b963
cmp edx, dword [esp + 0x54]
mov dword [esp + 0x30], eax
ja 0x40b96c
mov edi, dword [edi + ecx*8 + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x50]
lea eax, [esi + esi*4]
mov dword [esp + 0x48], esi
lea esi, [edx + edx*4]
mov dword [esp + 0x10], esi
mov esi, ebx
lea ecx, [ecx + eax*4]
lea eax, [edi + edi*4]
sub esi, edi
mov dword [esp + 0x18], edi
lea eax, [ecx + eax*4]
cmp esi, edi
mov dword [esp + 8], ecx
mov dword [esp + 0x24], eax
jae 0x409a3d
lea eax, [esi*4]
lea edi, [eax + eax*4]
push edi
push dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
push ebx
call fcn.0042c8b0
add esp, 0xc
mov eax, dword [esp + 0x18]
add edi, ebx
mov ecx, edi
test eax, eax
jle 0x409b31
test esi, esi
jle 0x409b31
mov eax, dword [esp + 0xf0]
mov edx, dword [esp + 0x10]
lea esi, [eax + edx*4]
mov eax, ecx
lea ecx, [eax - 0x14]
mov dword [esp + 0x28], eax
mov edi, dword [eax - 8]
mov eax, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x10], ecx
mov ecx, 0xff
mov ebx, dword [eax - 8]
cmp di, bx
setne dl
cmovb edx, ecx
test dl, dl
jne 0x4099da
shr edi, 0x10
shr ebx, 0x10
xor edx, edx
cmp di, bx
mov edi, 0xff
setne dl
cmovb edx, edi
test dl, dl
jne 0x4099da
mov eax, dword [esp + 0x28]
xor edx, edx
mov edi, dword [eax - 4]
mov eax, dword [esp + 0x24]
mov ebx, dword [eax - 4]
mov dword [esp + 0x58], edi
cmp di, bx
mov edi, 0xff
setne dl
cmovb edx, edi
test dl, dl
je 0x4099e9
cmp dl, 0xff
je 0x4099f8
mov ecx, dword [esp + 0x10]
mov edi, eax
mov eax, ecx
jmp 0x409a03
mov edx, dword [esp + 0x58]
shr ebx, 0x10
shr edx, 0x10
cmp dx, bx
jae 0x4099df
add eax, 0xffffffec
mov ecx, eax
mov edi, eax
mov eax, dword [esp + 0x28]
mov edx, dword [ecx + 0x10]
cmp dword [esp + 8], edi
mov dword [esp + 0x24], edi
mov dword [esi + 0x10], edx
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
jae 0x409b47
mov ebx, dword [esp + 0xc]
add esi, 0xffffffec
cmp eax, ebx
ja 0x409971
jmp 0x409b4b
mov eax, dword [esp + 0x18]
lea eax, [eax*4]
lea esi, [eax + eax*4]
push esi
push ecx
mov edi, dword [esp + 0x14]
push edi
call fcn.0042c8b0
add esp, 0xc
add esi, edi
cmp dword [esp + 0x18], 0
mov eax, esi
jle 0x409b39
cmp ebx, dword [esp + 0x18]
jle 0x409b39
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov edx, dword [edi + 0xc]
mov esi, dword [ecx + 0xc]
xor ebx, ebx
mov eax, 0xff
cmp dx, si
setne bl
cmovb ebx, eax
test bl, bl
jne 0x409ad2
shr edx, 0x10
shr esi, 0x10
xor ebx, ebx
cmp dx, si
setne bl
cmovb ebx, eax
test bl, bl
jne 0x409ad2
mov edx, dword [edi + 0x10]
mov esi, dword [ecx + 0x10]
xor ebx, ebx
cmp dx, si
setne bl
cmovb ebx, eax
test bl, bl
je 0x409ade
cmp bl, 0xff
je 0x409ae9
lea ebx, [ecx + 0x14]
mov edx, edi
jmp 0x409af0
shr edx, 0x10
shr esi, 0x10
cmp dx, si
jae 0x409ad7
mov ebx, ecx
lea edx, [edi + 0x14]
mov ecx, edi
mov esi, dword [ecx + 0x10]
mov eax, dword [esp + 8]
cmp ebx, dword [esp + 0x28]
mov dword [eax + 0x10], esi
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
lea eax, [eax + 0x14]
jae 0x409b27
cmp edx, dword [esp + 0x10]
mov ecx, ebx
mov edi, edx
mov dword [esp + 8], eax
jb 0x409a8e
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
jmp 0x409b4b
mov ebx, dword [esp + 0xc]
mov eax, ecx
jmp 0x409b4b
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
jmp 0x409b4b
mov ebx, dword [esp + 0xc]
sub eax, ebx
mov ecx, 0xcccccccd
mul ecx
shr edx, 2
and edx, 0xfffffffc
lea eax, [edx + edx*4]
push eax
push ebx
push dword [esp + 0x2c]
call fcn.0042c8b0
add esp, 0xc
mov ebx, dword [esp + 0x198]
mov ecx, dword [esp + 0x14]
mov eax, ebx
sub eax, ecx
jbe 0x409eaf
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x190]
mov edx, dword [esp + 0x48]
add esi, dword [esp + 0x18]
mov dword [edi + ecx*8], edx
mov dword [edi + ecx*8 + 4], esi
mov ecx, dword [esp + 0x30]
cmp ebx, ecx
jbe 0x40b979
lea eax, [eax*8 - 0x10]
lea esi, [edi + ecx*8]
lea edx, [edi + ecx*8 + 8]
push eax
push edx
push esi
call fcn.0042c8b0
add esp, 0xc
dec ebx
jmp 0x40983f
mov eax, dword [esp + 0x134]
test eax, eax
jne 0x4094a2
test dword [esp + 0x194], 0x1fffffff
je 0x409be8
mov ecx, edi
call fcn.0042856a
mov eax, dword [esp + 0x130]
test eax, eax
je 0x409c06
shl eax, 2
lea eax, [eax + eax*4]
test eax, eax
je 0x409c06
mov ecx, dword [esp + 0xc]
call fcn.0042856a
mov edi, dword [esp + 0x140]
mov esi, dword [esp + 0x138]
test edi, edi
mov dword [esp + 0x28], esi
je 0x409c4e
lea eax, [edi*4]
lea ecx, [eax + eax*4]
xor eax, eax
movzx edx, word [esi + ecx - 8]
test dx, dx
je 0x409c48
cmp dx, 1
jne 0x409d65
cmp word [esi + ecx - 6], 0x11
ja 0x409d65
inc eax
add ecx, 0xffffffec
jne 0x409c28
lea esi, [esp + 0x60]
mov eax, 0x80000002
mov dword [esp + 0x24], edi
mov edx, 0x43b648
mov dword [esp + 0x200], eax
mov ecx, esi
push 0x29
call fcn.0040cd05
add esp, 4
mov edi, dword [esi]
xor ebx, ebx
lea eax, [esp + 0x190]
mov dword [esp + 0x190], ebx
push eax
push 0x20019
push ebx
push edi
mov eax, 0x80000002
push eax
call sub.ADVAPI32.dll_RegOpenKeyExW
mov esi, eax
test eax, eax
jne 0x409ca5
mov ebx, dword [esp + 0x190]
test dword [esp + 0x64], 0x7fffffff
je 0x409cb6
mov ecx, edi
call fcn.0042856a
test esi, esi
jne 0x409efc
mov dword [esp + 0x214], ebx
lea ecx, [esp + 0x190]
mov edx, 0x43b671
push 0xb
call fcn.0040cd05
add esp, 4
mov edi, 0x800
lea eax, [esp + 0x150]
mov ecx, 0x800
xor esi, esi
mov dword [eax], edi
lea eax, [esp + 0x34]
mov dword [eax], esi
call fcn.00428524
lea ecx, [esp + 0x60]
mov dword [esp + 8], eax
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov dword [ecx + 8], esi
lea ecx, [esp + 0x190]
mov edi, dword [ecx]
lea eax, [esp + 0x150]
push eax
push dword [esp + 0xc]
lea eax, [esp + 0x3c]
push eax
push 0
push edi
push ebx
call sub.ADVAPI32.dll_RegQueryValueExW
cmp eax, 0xea
jne 0x409df8
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x150]
sub ecx, edx
cmp ecx, eax
jae 0x409d14
lea ecx, [esp + 0x60]
push eax
call fcn.00438b46
add esp, 4
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
jmp 0x409d14
mov ecx, edi
sub ecx, eax
jb 0x40b939
sub ecx, 1
jb 0x40b939
cmp edi, ecx
jbe 0x40b9d1
lea eax, [ecx + ecx*4]
dec edi
xor ebx, ebx
mov ecx, dword [esi + eax*4 + 0x10]
mov dword [esp + 0x70], ecx
lea ecx, [edi + edi*4]
movsd xmm0, qword [esi + eax*4]
movsd xmm1, qword [esi + eax*4 + 8]
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm0
movsd xmm0, qword [esi + ecx*4]
movsd xmm1, qword [esi + ecx*4 + 8]
mov ecx, dword [esi + ecx*4 + 0x10]
mov dword [esi + eax*4 + 0x10], ecx
movsd qword [esi + eax*4], xmm0
movsd qword [esi + eax*4 + 8], xmm1
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x140], edi
mov eax, dword [esp + 0x68]
movsd xmm0, qword [esp + 0x60]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x254]
movsd qword [ecx + 4], xmm0
mov dword [ecx], 0
jmp 0x409f77
mov esi, eax
test eax, eax
jne 0x409e0c
mov ebx, dword [esp + 0x34]
mov esi, 0xde
cmp ebx, 0xb
jbe 0x409e2c
xor ebx, ebx
cmp dword [esp + 0x64], 0
mov cl, 1
je 0x409e22
mov ecx, dword [esp + 8]
call fcn.0042856a
mov cl, 1
mov dword [esp + 8], 0
jmp 0x409e3d
mov eax, dword [esp + 0x150]
mov esi, dword [esp + 0x64]
xor ecx, ecx
mov dword [esp + 0xc], eax
test dword [esp + 0x194], 0x7fffffff
je 0x409e59
mov dword [esp + 0x10], ecx
mov ecx, edi
call fcn.0042856a
mov ecx, dword [esp + 0x10]
test cl, cl
je 0x409e6e
mov eax, dword [esp + 8]
xor edi, edi
inc edi
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], esi
jmp 0x409ee0
cmp bl, 7
ja 0x409ec0
movzx eax, bl
mov ecx, 0x86
bt ecx, eax
jae 0x409ec0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
lea ecx, [esp + 0x64]
shr eax, 1
push eax
call fcn.0041a2d0
add esp, 4
xor edi, edi
jmp 0x409ed3
mov ecx, eax
mov edx, ebx
push 0x43b8e8
jmp 0x409eb6
mov edx, ebx
push 0x43b8f8
jmp 0x409eb6
mov edx, ebx
push 0x43b918
call fcn.00437d80
add esp, 4
ud2
xor edi, edi
mov dword [esp + 0x68], 0xde
mov dword [esp + 0x64], 0
inc edi
test esi, esi
je 0x409ee0
mov ecx, dword [esp + 8]
call fcn.0042856a
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x68]
test edi, edi
je 0x40a02b
lea ecx, [esp + 0x214]
call fcn.0042ba7d
lea ecx, [esp + 0x200]
call fcn.0042ba7d
xor eax, eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x198], esi
mov dword [esp + 0x194], ebx
mov dword [esp + 0x19c], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x1a0], ecx
test edi, edi
je 0x409fbf
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0xec]
movsd xmm0, qword [esp + 0x138]
mov dword [ecx + 0x10], eax
movsd qword [ecx + 8], xmm0
mov dword [ecx + 4], 3
mov dword [ecx], 1
lea ecx, [esp + 0x190]
call fcn.004010d4
mov eax, dword [esp + 0x2c]
mov bl, 1
cmp eax, 8
je 0x409f88
lea ecx, [esp + 0x254]
call fcn.004010d4
test bl, bl
mov ebx, dword [esp + 0x28]
jne 0x40a11a
test edi, edi
je 0x40a0fe
shl edi, 2
lea esi, [ebx + 4]
lea edi, [edi + edi*4]
cmp dword [esi], 0
je 0x409fb2
mov ecx, dword [esi - 4]
call fcn.0042856a
add esi, 0x14
add edi, 0xffffffec
jne 0x409fa5
jmp 0x40a0fe
mov esi, dword [esp + 0x2c]
movsd xmm0, qword [esp + 0x1a0]
movsd xmm2, qword [esp + 0x190]
movsd xmm1, qword [esp + 0x198]
cmp esi, 8
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm2
jne 0x40a08f
movsd xmm0, qword [esp + 0x64]
movsd xmm1, qword [esp + 0x6c]
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x60]
movsd qword [esp + 0x100], xmm0
movsd qword [esp + 0x108], xmm1
mov dword [esp + 0x110], eax
jmp 0x40a0c4
lea edi, [esp + 0x60]
lea ecx, [esp + 0x100]
mov eax, dword [edi + 0xc]
mov dword [ecx], ebx
mov dword [ecx + 4], esi
mov dword [ecx + 8], eax
push ecx
call fcn.0041e570
add esp, 4
lea ebx, [esp + 0x190]
add edx, eax
mov dword [edi], eax
mov dword [edi + 4], edx
mov ecx, ebx
mov edx, edi
mov word [edi + 8], 0
mov dword [edi + 0xc], 1
call fcn.0042b554
mov eax, dword [ebx + 8]
mov esi, dword [ebx]
inc eax
cmp eax, 1
je 0x40a122
cmp word [esi + eax*2 - 4], 0
lea ebx, [eax - 1]
mov eax, ebx
je 0x40a074
jmp 0x40a124
lea eax, [esp + 0x258]
mov ecx, dword [eax + 0x10]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov dword [esp + 0x110], ecx
lea ecx, [esp + 0x60]
movsd qword [esp + 0x108], xmm1
movsd qword [esp + 0x100], xmm0
call fcn.004010d4
mov ecx, dword [esp + 0xec]
movsd xmm0, qword [esp + 0x100]
movsd xmm1, qword [esp + 0x108]
mov eax, dword [esp + 0x110]
mov ebx, dword [esp + 0x28]
mov dword [ecx + 4], esi
movsd qword [ecx + 8], xmm0
movsd qword [ecx + 0x10], xmm1
mov dword [ecx + 0x18], eax
mov dword [ecx], 1
mov eax, dword [esp + 0x13c]
test eax, eax
je 0x40a11a
shl eax, 2
lea eax, [eax + eax*4]
test eax, eax
je 0x40a11a
mov ecx, ebx
call fcn.0042856a
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
mov dword [esp + 0x198], ebx
mov ecx, edi
mov edx, esi
push ebx
call fcn.0041a2d0
add esp, 4
push edi
call fcn.0041e570
add esp, 4
mov edi, edx
lea ecx, [esp + 0x168]
mov edx, eax
push 0xd
push 0x43ee27
push edi
call fcn.0040bbfc
add esp, 0xc
cmp dword [esp + 0x64], 0
je 0x40a16c
mov ecx, dword [esp + 0x60]
call fcn.0042856a
test dword [esp + 0x194], 0x7fffffff
je 0x40a180
mov ecx, esi
call fcn.0042856a
cmp dword [esp + 0x104], 0
je 0x40a196
mov ecx, dword [esp + 0x100]
call fcn.0042856a
lea ecx, [esp + 0x214]
call fcn.0042ba7d
lea ecx, [esp + 0x200]
call fcn.0042ba7d
lea edi, [esp + 0x60]
lea esi, [esp + 0x168]
mov ecx, edi
mov edx, esi
call fcn.0040c188
cmp dword [edi], 1
jne 0x40a1ea
mov ebx, dword [esp + 0x168]
mov esi, dword [esp + 0x16c]
mov edi, dword [esp + 0x170]
lea ecx, [esp + 0x64]
call fcn.00401178
jmp 0x40a2b1
mov eax, dword [esp + 0x80]
bt eax, 0xa
setae cl
test byte [esp + 0x9f], 0x20
sete dl
or dl, cl
cmp dl, 1
jne 0x40a29c
and eax, 0x10
jne 0x40a29c
push esi
call fcn.0041e570
add esp, 4
mov esi, edx
lea edi, [esp + 0x60]
mov edx, eax
mov ecx, edi
push esi
call fcn.0042b0a9
add esp, 4
xor eax, eax
cmp word [edi], 1
mov edi, 0
jne 0x40a248
mov eax, dword [esp + 0x66]
mov edi, dword [esp + 0x62]
mov esi, dword [esp + 0x168]
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x170]
mov ebx, edi
shr ebx, 0x10
test di, di
je 0x40b3ad
cmp di, 1
jne 0x40a27b
cmp bx, 0x11
jbe 0x40b3ad
mov eax, dword [esp + 0xec]
mov bl, 1
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax], 0
mov eax, dword [esp + 0x2c]
jmp 0x40b4c3
mov ebx, dword [esp + 0x168]
mov esi, dword [esp + 0x16c]
mov edi, dword [esp + 0x170]
xor ecx, ecx
mov eax, 2
jmp 0x409f0a
lea esi, [esp + 0xf4]
xor edx, edx
mov ecx, esi
push ebx
call fcn.004388e0
add esp, 4
mov eax, dword [esi + 4]
mov edi, dword [esi + 8]
jmp 0x4090fd
lea eax, [esp + 0x194]
push eax
call fcn.0041a280
add esp, 4
mov edi, dword [esp + 0x10]
mov eax, dword [0x43fc50]
xor edx, edx
lea ecx, [esp + 0x1c]
lea esi, [esp + 0x118]
mov dword [esp + 0x10], edi
mov dword [ecx], edx
mov dword [ecx + 4], edi
lea ecx, [esp + 0x10c]
mov dword [ecx - 0xc], eax
mov dword [ecx - 8], edx
mov dword [ecx - 4], edx
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [esi], eax
mov dword [esp + 0x50], eax
mov dword [esi + 4], edx
mov dword [esi + 8], edx
mov byte [esi + 0xc], 0
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
je 0x40b3e4
mov dword [esp + 0xf0], ecx
lea ecx, [esp + 0x234]
mov dword [esp + 0x54], eax
lea edx, [esp + 0x1c]
push dword [esp + 0x10]
push esi
call fcn.0040fb94
add esp, 8
mov ecx, dword [esp + 0x238]
cmp dword [esp + 0x234], 1
je 0x40b43f
lea eax, [ecx - 0xa]
rol eax, 0x1d
cmp eax, 4
ja 0x40a571
mov eax, dword [eax*4 + 0x40b9dc]
add eax, dword [esp + 0x4c]
jmp eax
mov eax, ecx
lea ecx, [esp + 0x60]
lea edx, [esp + 0x1c]
push eax
push dword [esp + 0x14]
push esi
call fcn.0040ffd8
add esp, 0xc
movzx eax, byte [esp + 0x60]
cmp eax, 9
je 0x40a337
jmp 0x40b590
mov dword [esp + 0x14], 0
jmp 0x40935a
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], eax
cmp edx, dword [esp + 0x13c]
jne 0x40b45d
lea ecx, [esp + 0x138]
call fcn.0040c3d0
lea eax, [esp + 0x138]
mov ecx, dword [eax]
mov edx, dword [eax + 8]
jmp 0x40b461
lea eax, [esp + 0x10c]
mov ecx, dword [esp + 0x100]
mov edi, dword [esp + 0x104]
mov ebx, dword [esp + 0x108]
mov esi, dword [esp + 0x10c]
movsd xmm1, qword [eax + 0xc]
movsd xmm0, qword [eax + 4]
movsd qword [esp + 0x140], xmm1
movsd xmm1, qword [eax + 0x14]
movsd qword [esp + 0x138], xmm0
movsd qword [esp + 0x148], xmm1
jmp 0x40b67d
mov edi, dword [esp + 0x23c]
mov ebx, dword [esp + 0x240]
mov eax, dword [esp + 0x244]
mov dword [esp + 8], ecx
jmp 0x40b5e6
mov ecx, dword [esp + 0x28]
lea eax, [edx + edx*4]
inc edx
mov dword [esp + 0x28], ecx
mov dword [ecx + eax*4], esi
mov esi, dword [esp + 0xc]
mov dword [ecx + eax*4 + 8], esi
mov esi, dword [esp + 0x10]
mov dword [ecx + eax*4 + 4], esi
mov word [ecx + eax*4 + 0xc], di
mov edi, dword [esp + 8]
mov word [ecx + eax*4 + 0xe], bx
xor ebx, ebx
mov dword [ecx + eax*4 + 0x10], edi
mov dword [esp + 0x140], edx
mov eax, dword [esp + 0xec]
movsd xmm0, qword [esp + 0x138]
mov dword [eax + 0x10], edx
movsd qword [eax + 8], xmm0
mov dword [eax + 4], 3
mov dword [eax], 1
mov eax, dword [esp + 0x254]
cmp eax, 8
je 0x40b4d4
lea ecx, [esp + 0x254]
call fcn.004010d4
test bl, bl
je 0x40a11a
lea esi, [esp + 0x138]
mov ecx, esi
call fcn.0040cb20
mov eax, dword [esi + 4]
test eax, eax
je 0x40a11a
shl eax, 2
lea eax, [eax + eax*4]
test eax, eax
je 0x40a11a
mov ecx, dword [esp + 0x28]
jmp 0x40a115
movzx ecx, byte [esp + 0x63]
movzx edx, word [esp + 0x61]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
shl ecx, 0x10
mov dword [esp + 0x14], esi
or edx, ecx
shl edx, 8
or edx, eax
mov dword [esp + 8], edx
jmp 0x40b5ea
mov dword [esp + 0x14], eax
lea esi, [esp + 0x100]
mov ecx, esi
call fcn.0040cb4c
mov eax, dword [esi + 4]
test eax, eax
je 0x40b612
imul eax, eax, 0x68
test eax, eax
je 0x40b612
mov ecx, dword [esp + 0x100]
call fcn.0042856a
lea ecx, [esp + 0x10c]
call fcn.0040cc30
mov eax, dword [esp + 0x110]
test eax, eax
je 0x40b63f
shl eax, 2
lea eax, [eax + eax*8]
test eax, eax
je 0x40b63f
mov ecx, dword [esp + 0x10c]
call fcn.0042856a
lea ecx, [esp + 0x118]
call fcn.0040cc01
test dword [esp + 0x11c], 0xfffffff
mov esi, dword [esp + 0x14]
je 0x40b668
mov ecx, dword [esp + 0x118]
call fcn.0042856a
mov eax, dword [esp + 0xf0]
cmp dword [esp + 0x54], eax
jne 0x40b833
mov ecx, dword [esp + 8]
movsd xmm0, qword [esp + 0x148]
movsd xmm2, qword [esp + 0x138]
movsd xmm1, qword [esp + 0x140]
imul eax, ebx, 0x68
lea edx, [esp + 0x190]
add eax, ecx
mov dword [edx], ecx
mov dword [edx + 4], eax
movsd qword [esp + 0x188], xmm0
movsd qword [esp + 0x180], xmm1
movsd qword [esp + 0x178], xmm2
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], edi
mov dword [esp + 0x170], ebx
lea ebx, [esp + 0x60]
mov dword [esp + 0x174], esi
xor esi, esi
mov ecx, ebx
mov dword [edx + 8], esi
mov dword [edx + 0x10], esi
mov dword [edx + 0x18], esi
mov dword [edx + 0x30], esi
call fcn.0040c82a
cmp dword [ebx], esi
je 0x40b86b
lea esi, [esp + 0x190]
cmp dword [esi + 0x18], 1
sete al
cmp dword [esi + 0x1c], 0
setne cl
and cl, al
cmp dword [esi + 0x30], 1
movzx ecx, cl
sete al
cmp dword [esi + 0x34], 0
setne dl
and dl, al
movzx eax, dl
lea ecx, [ecx + eax + 1]
call fcn.0040c1f1
lea edi, [esp + 0x60]
mov dword [esp + 0x50], eax
mov ecx, dword [edi + 0x10]
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0x100]
movsd qword [eax], xmm0
movsd qword [eax + 8], xmm1
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], 1
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
mov edi, 0x14
xor esi, esi
inc esi
lea ecx, [esp + 0x254]
lea edx, [esp + 0x60]
call fcn.0040c82a
cmp dword [esp + 0x254], 0
je 0x40b852
cmp esi, dword [esp + 0x104]
mov ebx, esi
je 0x40b7dd
movsd xmm0, qword [esp + 0x254]
movsd xmm1, qword [esp + 0x25c]
mov eax, dword [esp + 0x264]
mov ecx, dword [esp + 0x50]
inc ebx
mov esi, ebx
mov dword [ecx + edi + 0x10], eax
movsd qword [ecx + edi + 8], xmm1
movsd qword [ecx + edi], xmm0
mov dword [esp + 0x108], ebx
add edi, 0x14
jmp 0x40b779
cmp dword [esp + 0x78], 1
sete al
cmp dword [esp + 0x7c], 0
setne cl
and cl, al
cmp dword [esp + 0x90], 1
movzx eax, cl
sete cl
cmp dword [esp + 0x94], 0
setne dl
and dl, cl
movzx ecx, dl
mov edx, ebx
lea eax, [eax + ecx + 1]
lea ecx, [esp + 0x100]
push eax
call fcn.00438365
add esp, 4
mov eax, dword [esp + 0x100]
mov dword [esp + 0x50], eax
jmp 0x40b7a2
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0xf8]
mov edi, dword [esp + 8]
mov dword [esp + 0xc], ebx
mov ecx, 6
xor ebx, ebx
jmp 0x409385
lea ecx, [esp + 0x60]
call fcn.0040caea
mov edi, dword [esp + 0x104]
mov ebx, dword [esp + 0x16c]
jmp 0x40b87b
lea ecx, [esp + 0x190]
call fcn.0040caea
mov ebx, edi
xor edi, edi
lea ecx, [esp + 0x168]
call fcn.0040cb4c
test ebx, ebx
je 0x40b89e
imul eax, ebx, 0x68
test eax, eax
je 0x40b89e
mov ecx, dword [esp + 0x168]
call fcn.0042856a
lea ecx, [esp + 0x174]
call fcn.0040cc30
mov eax, dword [esp + 0x178]
test eax, eax
je 0x40b8cb
shl eax, 2
lea eax, [eax + eax*8]
test eax, eax
je 0x40b8cb
mov ecx, dword [esp + 0x174]
call fcn.0042856a
lea ebx, [esp + 0x180]
mov ecx, ebx
call fcn.0040cc01
test dword [ebx + 4], 0xfffffff
je 0x40b8ee
mov ecx, dword [esp + 0x180]
call fcn.0042856a
cmp dword [esp + 0xf8], 0
je 0x40b904
mov ecx, dword [esp + 0xf4]
call fcn.0042856a
mov dword [esp + 0x54], esi
push dword [esp + 0x28]
call sub.KERNEL32.dll_CloseHandle
cmp dword [esp + 0x22c], 0
je 0x40b927
mov ecx, dword [esp + 0x228]
call fcn.0042856a
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov esi, 8
jmp 0x4093cb
mov ecx, str.attempt_to_subtract_with_overflowCanonicalize
mov edx, 0x21
push 0x43b67c
jmp 0x40b959
call fcn.00437f00
jmp 0x409ebb
mov ecx, esi
push 0x43b908
jmp 0x40b98e
mov ecx, edx
mov edx, dword [esp + 0x54]
push 0x43b908
jmp 0x40b9a3
mov edx, ebx
call fcn.00437ce0
ud2
mov ecx, dword [esp + 8]
mov edx, ebx
dec ecx
push 0x43b8d8
call fcn.00437f50
jmp 0x409ebb
mov edx, dword [esp + 0x54]
mov ecx, ebx
push 0x43b8d8
call fcn.00437e90
jmp 0x409ebb
push 0x43b8c8
jmp 0x40b98e
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x54]
push 0x43b8c8
jmp 0x40b9a3
mov ecx, esi
mov edx, 0x20
push 0x43d598
jmp 0x40b9a3
mov edx, edi
call fcn.00437c80
ud2