Function at 0x404630
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x450673
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xb50
mov eax, dword [0x45e008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x66c], 0
call fcn.00403fd0
test eax, eax
je 0x40468b
mov byte [ebp - 0x665], 1
jmp 0x404692
mov byte [ebp - 0x665], 0
mov al, byte [ebp - 0x665]
mov byte [ebp - 0x66d], al
mov dword [ebp - 0x720], 0x20019
movzx ecx, byte [ebp - 0x66d]
test ecx, ecx
je 0x4046c5
mov edx, dword [ebp - 0x720]
or edx, 0x100
mov dword [ebp - 0x720], edx
xor eax, eax
mov byte [ebp - 0x66e], al
xor ecx, ecx
mov byte [ebp - 0x66f], cl
xor edx, edx
mov byte [ebp - 0x670], dl
mov al, byte [ebp - 0x66e]
mov byte [ebp - 0x708], al
mov cl, byte [ebp - 0x66f]
mov byte [ebp - 0x710], cl
mov dl, byte [ebp - 0x670]
mov byte [ebp - 0x714], dl
mov eax, 0xc80d18f2
mov dword [ebp - 0x7d8], 0x765c0ea0
mov dword [ebp - 0x7d4], eax
mov ecx, dword [ebp - 0x7d8]
mov edx, dword [ebp - 0x7d4]
mov dword [ebp - 0x8b0], ecx
mov dword [ebp - 0x8ac], edx
mov eax, 0xada85920
mov dword [ebp - 0x7e0], 0x866af9da
mov dword [ebp - 0x7dc], eax
mov ecx, dword [ebp - 0x7e0]
mov edx, dword [ebp - 0x7dc]
mov dword [ebp - 0x8a8], ecx
mov dword [ebp - 0x8a4], edx
lea eax, [ebp - 0x8b0]
mov dword [ebp - 0x71c], eax
mov ecx, 0xc8636f9d
mov dword [ebp - 0x450], 0x183760f5
mov dword [ebp - 0x44c], ecx
mov edx, 0xada85920
mov dword [ebp - 0x448], 0x866af9da
mov dword [ebp - 0x444], edx
xor eax, eax
mov byte [ebp - 0x671], al
mov cl, byte [ebp - 0x671]
mov byte [ebp - 0x718], cl
movaps xmm0, xmmword [ebp - 0x450]
movaps xmmword [ebp - 0xa40], xmm0
mov edx, dword [ebp - 0x71c]
movups xmm0, xmmword [edx]
movaps xmmword [ebp - 0xa30], xmm0
movaps xmm0, xmmword [ebp - 0xa30]
pxor xmm0, xmmword [ebp - 0xa40]
movaps xmmword [ebp - 0xa50], xmm0
movaps xmm0, xmmword [ebp - 0xa50]
mov eax, dword [ebp - 0x71c]
movups xmmword [eax], xmm0
mov ecx, dword [ebp - 0x71c]
mov dword [ebp - 0x888], ecx
mov edx, dword [ebp - 0x888]
push edx
lea ecx, [ebp - 0x4e0]
call fcn.00401810
mov dword [ebp - 4], 0
mov dword [ebp - 0x664], 0
xor eax, eax
mov byte [ebp - 0x672], al
xor ecx, ecx
mov byte [ebp - 0x673], cl
xor edx, edx
mov byte [ebp - 0x674], dl
mov al, byte [ebp - 0x672]
mov byte [ebp - 0x6a8], al
mov cl, byte [ebp - 0x673]
mov byte [ebp - 0x6ac], cl
mov dl, byte [ebp - 0x674]
mov byte [ebp - 0x6b0], dl
mov eax, 0x8d312eca
mov dword [ebp - 0x7e8], 0x4c712fa6
mov dword [ebp - 0x7e4], eax
mov ecx, dword [ebp - 0x7e8]
mov edx, dword [ebp - 0x7e4]
mov dword [ebp - 0x910], ecx
mov dword [ebp - 0x90c], edx
mov eax, 0xc2db3652
mov dword [ebp - 0x7f0], 0xe503b486
mov dword [ebp - 0x7ec], eax
mov ecx, dword [ebp - 0x7f0]
mov edx, dword [ebp - 0x7ec]
mov dword [ebp - 0x908], ecx
mov dword [ebp - 0x904], edx
mov eax, 0xe72a8c95
mov dword [ebp - 0x7f8], 0xfa8ddea1
mov dword [ebp - 0x7f4], eax
mov ecx, dword [ebp - 0x7f8]
mov edx, dword [ebp - 0x7f4]
mov dword [ebp - 0x900], ecx
mov dword [ebp - 0x8fc], edx
mov eax, 0x65a77332
mov dword [ebp - 0x800], 0xffe921eb
mov dword [ebp - 0x7fc], eax
mov ecx, dword [ebp - 0x800]
mov edx, dword [ebp - 0x7fc]
mov dword [ebp - 0x8f8], ecx
mov dword [ebp - 0x8f4], edx
lea eax, [ebp - 0x910]
mov dword [ebp - 0x6a4], eax
mov ecx, 0xc8636f9d
mov dword [ebp - 0x470], 0x183760f5
mov dword [ebp - 0x46c], ecx
mov edx, 0xada85920
mov dword [ebp - 0x468], 0x866af9da
mov dword [ebp - 0x464], edx
mov eax, 0x935af5e7
mov dword [ebp - 0x460], 0xb9d1aac7
mov dword [ebp - 0x45c], eax
mov ecx, 0x65de1b42
mov dword [ebp - 0x458], 0x9e9b4684
mov dword [ebp - 0x454], ecx
xor edx, edx
mov byte [ebp - 0x675], dl
mov al, byte [ebp - 0x675]
mov byte [ebp - 0x6b4], al
movaps xmm0, xmmword [ebp - 0x470]
movaps xmmword [ebp - 0xac0], xmm0
mov ecx, dword [ebp - 0x6a4]
movups xmm0, xmmword [ecx]
movaps xmmword [ebp - 0xa90], xmm0
movaps xmm0, xmmword [ebp - 0xa90]
pxor xmm0, xmmword [ebp - 0xac0]
movaps xmmword [ebp - 0xad0], xmm0
movaps xmm0, xmmword [ebp - 0xad0]
mov edx, dword [ebp - 0x6a4]
movups xmmword [edx], xmm0
mov eax, dword [ebp - 0x6a4]
add eax, 0x10
mov dword [ebp - 0x744], eax
movaps xmm0, xmmword [ebp - 0x460]
movaps xmmword [ebp - 0xaf0], xmm0
mov ecx, dword [ebp - 0x744]
movups xmm0, xmmword [ecx]
movaps xmmword [ebp - 0xae0], xmm0
movaps xmm0, xmmword [ebp - 0xae0]
pxor xmm0, xmmword [ebp - 0xaf0]
movaps xmmword [ebp - 0x940], xmm0
movaps xmm0, xmmword [ebp - 0x940]
mov edx, dword [ebp - 0x744]
movups xmmword [edx], xmm0
mov eax, dword [ebp - 0x6a4]
mov dword [ebp - 0x884], eax
lea ecx, [ebp - 0x664]
push ecx
mov edx, dword [ebp - 0x720]
push edx
push 0
mov eax, dword [ebp - 0x884]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x404c5d
mov dword [ebp - 0x4c8], 0x20019
mov dword [ebp - 0x4c4], 0x400
xor ecx, ecx
mov byte [ebp - 0x676], cl
xor edx, edx
mov byte [ebp - 0x677], dl
xor eax, eax
mov byte [ebp - 0x678], al
mov cl, byte [ebp - 0x676]
mov byte [ebp - 0x6b8], cl
mov dl, byte [ebp - 0x677]
mov byte [ebp - 0x6bc], dl
mov al, byte [ebp - 0x678]
mov byte [ebp - 0x6c0], al
mov ecx, 0x8f0601f4
mov dword [ebp - 0x808], 0x705401b8
mov dword [ebp - 0x804], ecx
mov edx, dword [ebp - 0x808]
mov eax, dword [ebp - 0x804]
mov dword [ebp - 0x8c0], edx
mov dword [ebp - 0x8bc], eax
mov ecx, 0xada85920
mov dword [ebp - 0x810], 0x860e90af
mov dword [ebp - 0x80c], ecx
mov edx, dword [ebp - 0x810]
mov eax, dword [ebp - 0x80c]
mov dword [ebp - 0x8b8], edx
mov dword [ebp - 0x8b4], eax
lea ecx, [ebp - 0x8c0]
mov dword [ebp - 0x724], ecx
mov edx, dword [ebp - 0x914]
mov dword [ebp - 0x748], edx
mov eax, 0xc8636f9d
mov dword [ebp - 0x4c0], 0x183760f5
mov dword [ebp - 0x4bc], eax
mov ecx, 0xada85920
mov dword [ebp - 0x4b8], 0x866af9da
mov dword [ebp - 0x4b4], ecx
xor edx, edx
mov byte [ebp - 0x679], dl
mov al, byte [ebp - 0x679]
mov byte [ebp - 0x6c4], al
movaps xmm0, xmmword [ebp - 0x4c0]
movaps xmmword [ebp - 0x960], xmm0
mov ecx, dword [ebp - 0x724]
movups xmm0, xmmword [ecx]
movaps xmmword [ebp - 0x950], xmm0
movaps xmm0, xmmword [ebp - 0x950]
pxor xmm0, xmmword [ebp - 0x960]
movaps xmmword [ebp - 0x970], xmm0
movaps xmm0, xmmword [ebp - 0x970]
mov edx, dword [ebp - 0x724]
movups xmmword [edx], xmm0
mov eax, dword [ebp - 0x724]
mov dword [ebp - 0x748], eax
mov ecx, dword [ebp - 0x664]
mov dword [ebp - 0x880], ecx
lea edx, [ebp - 0x4c4]
push edx
lea eax, [ebp - 0x438]
push eax
lea ecx, [ebp - 0x4c8]
push ecx
push 0
mov edx, dword [ebp - 0x748]
push edx
mov eax, dword [ebp - 0x880]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x404c50
lea ecx, [ebp - 0x438]
mov dword [ebp - 0x698], ecx
mov edx, dword [ebp - 0x698]
add edx, 1
mov dword [ebp - 0x87c], edx
mov eax, dword [ebp - 0x698]
mov cl, byte [eax]
mov byte [ebp - 0x67a], cl
add dword [ebp - 0x698], 1
cmp byte [ebp - 0x67a], 0
jne 0x404bef
mov edx, dword [ebp - 0x698]
sub edx, dword [ebp - 0x87c]
mov dword [ebp - 0x878], edx
mov eax, dword [ebp - 0x878]
mov dword [ebp - 0x874], eax
mov ecx, dword [ebp - 0x874]
mov dword [ebp - 0x870], ecx
mov edx, dword [ebp - 0x870]
push edx
lea eax, [ebp - 0x438]
push eax
lea ecx, [ebp - 0x4e0]
call fcn.00401c50
mov ecx, dword [ebp - 0x664]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edx, edx
mov byte [ebp - 0x67b], dl
xor eax, eax
mov byte [ebp - 0x67c], al
xor ecx, ecx
mov byte [ebp - 0x67d], cl
mov dl, byte [ebp - 0x67b]
mov byte [ebp - 0x6c8], dl
mov al, byte [ebp - 0x67c]
mov byte [ebp - 0x6cc], al
mov cl, byte [ebp - 0x67d]
mov byte [ebp - 0x6d0], cl
mov edx, 0xc80d18f2
mov dword [ebp - 0x818], 0x765c0ea0
mov dword [ebp - 0x814], edx
mov eax, dword [ebp - 0x818]
mov ecx, dword [ebp - 0x814]
mov dword [ebp - 0x8d0], eax
mov dword [ebp - 0x8cc], ecx
mov edx, 0xada85920
mov dword [ebp - 0x820], 0x866af9da
mov dword [ebp - 0x81c], edx
mov eax, dword [ebp - 0x820]
mov ecx, dword [ebp - 0x81c]
mov dword [ebp - 0x8c8], eax
mov dword [ebp - 0x8c4], ecx
lea edx, [ebp - 0x8d0]
mov dword [ebp - 0x728], edx
mov eax, 0xc8636f9d
mov dword [ebp - 0x4b0], 0x183760f5
mov dword [ebp - 0x4ac], eax
mov ecx, 0xada85920
mov dword [ebp - 0x4a8], 0x866af9da
mov dword [ebp - 0x4a4], ecx
xor edx, edx
mov byte [ebp - 0x67e], dl
mov al, byte [ebp - 0x67e]
mov byte [ebp - 0x6d4], al
movaps xmm0, xmmword [ebp - 0x4b0]
movaps xmmword [ebp - 0x990], xmm0
mov ecx, dword [ebp - 0x728]
movups xmm0, xmmword [ecx]
movaps xmmword [ebp - 0x980], xmm0
movaps xmm0, xmmword [ebp - 0x980]
pxor xmm0, xmmword [ebp - 0x990]
movaps xmmword [ebp - 0xb00], xmm0
movaps xmm0, xmmword [ebp - 0xb00]
mov edx, dword [ebp - 0x728]
movups xmmword [edx], xmm0
mov eax, dword [ebp - 0x728]
mov dword [ebp - 0x868], eax
mov ecx, dword [ebp - 0x868]
push ecx
lea ecx, [ebp - 0x4f8]
call fcn.00401810
mov byte [ebp - 4], 1
push 0x7c
push 0
lea edx, [ebp - 0x590]
push edx
call fcn.004393f0
add esp, 0xc
lea eax, [ebp - 0x590]
push eax
call dword [sym.imp.ADVAPI32.dll_GetCurrentHwProfileA]
test eax, eax
je 0x404e43
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x694], ecx
mov edx, dword [ebp - 0x694]
add edx, 1
mov dword [ebp - 0x864], edx
mov eax, dword [ebp - 0x694]
mov cl, byte [eax]
mov byte [ebp - 0x67f], cl
add dword [ebp - 0x694], 1
cmp byte [ebp - 0x67f], 0
jne 0x404de2
mov edx, dword [ebp - 0x694]
sub edx, dword [ebp - 0x864]
mov dword [ebp - 0x860], edx
mov eax, dword [ebp - 0x860]
mov dword [ebp - 0x85c], eax
mov ecx, dword [ebp - 0x85c]
mov dword [ebp - 0x858], ecx
mov edx, dword [ebp - 0x858]
push edx
lea eax, [ebp - 0x58c]
push eax
lea ecx, [ebp - 0x4f8]
call fcn.00401c50
xor ecx, ecx
mov byte [ebp - 0x680], cl
xor edx, edx
mov byte [ebp - 0x681], dl
xor eax, eax
mov byte [ebp - 0x682], al
xor ecx, ecx
mov byte [ebp - 0x684], cl
xor edx, edx
mov byte [ebp - 0x68e], dl
xor eax, eax
mov byte [ebp - 0x685], al
xor ecx, ecx
mov byte [ebp - 0x687], cl
xor edx, edx
mov byte [ebp - 0x688], dl
xor eax, eax
mov byte [ebp - 0x689], al
lea ecx, [ebp - 0xb30]
push ecx
call fcn.00404330
add esp, 4
mov dword [ebp - 0x854], eax
mov edx, dword [ebp - 0x854]
mov dword [ebp - 0x86c], edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x86c]
mov dword [ebp - 0x7c4], eax
mov cl, byte [ebp - 0x680]
mov byte [ebp - 0x6d8], cl
mov dl, byte [ebp - 0x681]
mov byte [ebp - 0x6dc], dl
mov al, byte [ebp - 0x682]
mov byte [ebp - 0x6e0], al
mov ecx, 0xc8636f9d
mov dword [ebp - 0x828], 0x183760aa
mov dword [ebp - 0x824], ecx
mov edx, dword [ebp - 0x828]
mov eax, dword [ebp - 0x824]
mov dword [ebp - 0x8e0], edx
mov dword [ebp - 0x8dc], eax
mov ecx, 0xada85920
mov dword [ebp - 0x830], 0x866af9da
mov dword [ebp - 0x82c], ecx
mov edx, dword [ebp - 0x830]
mov eax, dword [ebp - 0x82c]
mov dword [ebp - 0x8d8], edx
mov dword [ebp - 0x8d4], eax
lea ecx, [ebp - 0x8e0]
mov dword [ebp - 0x72c], ecx
mov edx, dword [ebp - 0x918]
mov dword [ebp - 0x73c], edx
mov eax, 0xc8636f9d
mov dword [ebp - 0x4a0], 0x183760f5
mov dword [ebp - 0x49c], eax
mov ecx, 0xada85920
mov dword [ebp - 0x498], 0x866af9da
mov dword [ebp - 0x494], ecx
xor edx, edx
mov byte [ebp - 0x683], dl
mov al, byte [ebp - 0x683]
mov byte [ebp - 0x6f8], al
movaps xmm0, xmmword [ebp - 0x4a0]
movaps xmmword [ebp - 0x9b0], xmm0
mov ecx, dword [ebp - 0x72c]
movups xmm0, xmmword [ecx]
movaps xmmword [ebp - 0x9a0], xmm0
movaps xmm0, xmmword [ebp - 0x9a0]
pxor xmm0, xmmword [ebp - 0x9b0]
movaps xmmword [ebp - 0x9c0], xmm0
movaps xmm0, xmmword [ebp - 0x9c0]
mov edx, dword [ebp - 0x72c]
movups xmmword [edx], xmm0
mov eax, dword [ebp - 0x72c]
mov dword [ebp - 0x73c], eax
lea ecx, [ebp - 0xb18]
push ecx
call fcn.00404290
add esp, 4
mov dword [ebp - 0x75c], eax
mov edx, dword [ebp - 0x75c]
mov dword [ebp - 0x760], edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x760]
mov dword [ebp - 0x798], eax
mov cl, byte [ebp - 0x684]
mov byte [ebp - 0x6e4], cl
mov dl, byte [ebp - 0x68e]
mov byte [ebp - 0x6e8], dl
mov al, byte [ebp - 0x685]
mov byte [ebp - 0x6ec], al
mov ecx, 0xc8636f9d
mov dword [ebp - 0x838], 0x183760aa
mov dword [ebp - 0x834], ecx
mov edx, dword [ebp - 0x838]
mov eax, dword [ebp - 0x834]
mov dword [ebp - 0x8f0], edx
mov dword [ebp - 0x8ec], eax
mov ecx, 0xada85920
mov dword [ebp - 0x840], 0x866af9da
mov dword [ebp - 0x83c], ecx
mov edx, dword [ebp - 0x840]
mov eax, dword [ebp - 0x83c]
mov dword [ebp - 0x8e8], edx
mov dword [ebp - 0x8e4], eax
lea ecx, [ebp - 0x8f0]
mov dword [ebp - 0x730], ecx
mov edx, dword [ebp - 0x91c]
mov dword [ebp - 0x738], edx
mov eax, 0xc8636f9d
mov dword [ebp - 0x490], 0x183760f5
mov dword [ebp - 0x48c], eax
mov ecx, 0xada85920
mov dword [ebp - 0x488], 0x866af9da
mov dword [ebp - 0x484], ecx
xor edx, edx
mov byte [ebp - 0x686], dl
mov al, byte [ebp - 0x686]
mov byte [ebp - 0x6f0], al
movaps xmm0, xmmword [ebp - 0x490]
movaps xmmword [ebp - 0x9e0], xmm0
mov ecx, dword [ebp - 0x730]
movups xmm0, xmmword [ecx]
movaps xmmword [ebp - 0x9d0], xmm0
movaps xmm0, xmmword [ebp - 0x9d0]
pxor xmm0, xmmword [ebp - 0x9e0]
movaps xmmword [ebp - 0x9f0], xmm0
movaps xmm0, xmmword [ebp - 0x9f0]
mov edx, dword [ebp - 0x730]
movups xmmword [edx], xmm0
mov eax, dword [ebp - 0x730]
mov dword [ebp - 0x738], eax
mov cl, byte [ebp - 0x687]
mov byte [ebp - 0x6f4], cl
mov dl, byte [ebp - 0x688]
mov byte [ebp - 0x70c], dl
mov al, byte [ebp - 0x689]
mov byte [ebp - 0x6fc], al
mov ecx, 0xc8636f9d
mov dword [ebp - 0x848], 0x183760aa
mov dword [ebp - 0x844], ecx
mov edx, dword [ebp - 0x848]
mov eax, dword [ebp - 0x844]
mov dword [ebp - 0x8a0], edx
mov dword [ebp - 0x89c], eax
mov ecx, 0xada85920
mov dword [ebp - 0x850], 0x866af9da
mov dword [ebp - 0x84c], ecx
mov edx, dword [ebp - 0x850]
mov eax, dword [ebp - 0x84c]
mov dword [ebp - 0x898], edx
mov dword [ebp - 0x894], eax
lea ecx, [ebp - 0x8a0]
mov dword [ebp - 0x734], ecx
mov edx, 0xc8636f9d
mov dword [ebp - 0x480], 0x183760f5
mov dword [ebp - 0x47c], edx
mov eax, 0xada85920
mov dword [ebp - 0x478], 0x866af9da
mov dword [ebp - 0x474], eax
xor ecx, ecx
mov byte [ebp - 0x68a], cl
mov dl, byte [ebp - 0x68a]
mov byte [ebp - 0x700], dl
movaps xmm0, xmmword [ebp - 0x480]
movaps xmmword [ebp - 0xa10], xmm0
mov eax, dword [ebp - 0x734]
movups xmm0, xmmword [eax]
movaps xmmword [ebp - 0xa00], xmm0
movaps xmm0, xmmword [ebp - 0xa00]
pxor xmm0, xmmword [ebp - 0xa10]
movaps xmmword [ebp - 0xa20], xmm0
movaps xmm0, xmmword [ebp - 0xa20]
mov ecx, dword [ebp - 0x734]
movups xmmword [ecx], xmm0
mov edx, dword [ebp - 0x734]
mov dword [ebp - 0x764], edx
mov eax, dword [ebp - 0x764]
push eax
lea ecx, [ebp - 0x4e0]
push ecx
lea edx, [ebp - 0xb60]
push edx
call fcn.004141a0
add esp, 0xc
mov dword [ebp - 0x768], eax
mov eax, dword [ebp - 0x768]
mov dword [ebp - 0x76c], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4f8]
push ecx
mov edx, dword [ebp - 0x76c]
push edx
lea eax, [ebp - 0xb48]
push eax
call fcn.004142d0
add esp, 0xc
mov dword [ebp - 0x770], eax
mov ecx, dword [ebp - 0x770]
mov dword [ebp - 0x774], ecx
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x774]
mov dword [ebp - 0x788], edx
mov eax, dword [ebp - 0x738]
mov dword [ebp - 0x69c], eax
mov ecx, dword [ebp - 0x69c]
add ecx, 1
mov dword [ebp - 0x778], ecx
mov edx, dword [ebp - 0x69c]
mov al, byte [edx]
mov byte [ebp - 0x68b], al
add dword [ebp - 0x69c], 1
cmp byte [ebp - 0x68b], 0
jne 0x4052da
mov ecx, dword [ebp - 0x69c]
sub ecx, dword [ebp - 0x778]
mov dword [ebp - 0x77c], ecx
mov edx, dword [ebp - 0x77c]
mov dword [ebp - 0x780], edx
mov eax, dword [ebp - 0x780]
mov dword [ebp - 0x784], eax
mov ecx, dword [ebp - 0x784]
push ecx
mov edx, dword [ebp - 0x738]
push edx
mov ecx, dword [ebp - 0x788]
call fcn.00412fa0
mov dword [ebp - 0x78c], eax
mov eax, dword [ebp - 0x78c]
mov dword [ebp - 0x790], eax
mov ecx, dword [ebp - 0x790]
push ecx
lea ecx, [ebp - 0xaa8]
call fcn.00401790
mov edx, dword [ebp - 0x66c]
or edx, 8
mov dword [ebp - 0x66c], edx
lea eax, [ebp - 0xaa8]
mov dword [ebp - 0x794], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x794]
mov dword [ebp - 0x79c], ecx
mov edx, dword [ebp - 0x798]
push edx
mov eax, dword [ebp - 0x79c]
push eax
movzx ecx, byte [ebp - 0x701]
push ecx
lea ecx, [ebp - 0xa80]
call fcn.00416630
mov edx, dword [ebp - 0x66c]
or edx, 0x10
mov dword [ebp - 0x66c], edx
lea eax, [ebp - 0xa80]
mov dword [ebp - 0x7a0], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x7a0]
mov dword [ebp - 0x7b4], ecx
mov edx, dword [ebp - 0x73c]
mov dword [ebp - 0x6a0], edx
mov eax, dword [ebp - 0x6a0]
add eax, 1
mov dword [ebp - 0x7a4], eax
mov ecx, dword [ebp - 0x6a0]
mov dl, byte [ecx]
mov byte [ebp - 0x68c], dl
add dword [ebp - 0x6a0], 1
cmp byte [ebp - 0x68c], 0
jne 0x4053f1
mov eax, dword [ebp - 0x6a0]
sub eax, dword [ebp - 0x7a4]
mov dword [ebp - 0x7a8], eax
mov ecx, dword [ebp - 0x7a8]
mov dword [ebp - 0x7ac], ecx
mov edx, dword [ebp - 0x7ac]
mov dword [ebp - 0x7b0], edx
mov eax, dword [ebp - 0x7b0]
push eax
mov ecx, dword [ebp - 0x73c]
push ecx
mov ecx, dword [ebp - 0x7b4]
call fcn.00412fa0
mov dword [ebp - 0x7b8], eax
mov edx, dword [ebp - 0x7b8]
mov dword [ebp - 0x7bc], edx
mov eax, dword [ebp - 0x7bc]
push eax
lea ecx, [ebp - 0xa68]
call fcn.00401790
mov ecx, dword [ebp - 0x66c]
or ecx, 0x20
mov dword [ebp - 0x66c], ecx
lea edx, [ebp - 0xa68]
mov dword [ebp - 0x7c0], edx
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x7c0]
mov dword [ebp - 0x7c8], eax
mov ecx, dword [ebp - 0x7c4]
push ecx
mov edx, dword [ebp - 0x7c8]
push edx
movzx eax, byte [ebp - 0x702]
push eax
lea ecx, [ebp - 0x510]
call fcn.00416630
mov ecx, dword [ebp - 0x66c]
or ecx, 0x40
mov dword [ebp - 0x66c], ecx
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xa68]
call fcn.00401ab0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xa80]
call fcn.00401ab0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0xaa8]
call fcn.00401ab0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xb48]
call fcn.00401ab0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xb60]
call fcn.00401ab0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xb18]
call fcn.00401ab0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0xb30]
call fcn.00401ab0
xor edx, edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], edx
mov byte [ebp - 0x18], dl
lea ecx, [ebp - 0x660]
call fcn.004336f0
mov eax, dword [ebp - 0x920]
mov dword [ebp - 0x754], eax
mov ecx, dword [ebp - 0x500]
mov dword [ebp - 0x754], ecx
mov edx, dword [ebp - 0x924]
mov dword [ebp - 0x758], edx
lea eax, [ebp - 0x510]
mov dword [ebp - 0x740], eax
mov ecx, dword [ebp - 0x740]
mov dword [ebp - 0x750], ecx
mov edx, dword [ebp - 0x740]
cmp dword [edx + 0x14], 0x10
jb 0x4055b6
mov dword [ebp - 0x74c], 1
jmp 0x4055c0
mov dword [ebp - 0x74c], 0
mov al, byte [ebp - 0x74c]
mov byte [ebp - 0x68d], al
movzx ecx, byte [ebp - 0x68d]
test ecx, ecx
je 0x4055f1
mov edx, dword [ebp - 0x740]
mov eax, dword [edx]
mov dword [ebp - 0x7cc], eax
mov ecx, dword [ebp - 0x7cc]
mov dword [ebp - 0x750], ecx
mov edx, dword [ebp - 0x750]
mov dword [ebp - 0x7d0], edx
mov eax, dword [ebp - 0x7d0]
mov dword [ebp - 0x758], eax
mov ecx, dword [ebp - 0x754]
push ecx
mov edx, dword [ebp - 0x758]
push edx
lea ecx, [ebp - 0x660]
call fcn.00433710
push 0
lea ecx, [ebp - 0x660]
call fcn.00433840
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x660]
call fcn.00433a60
lea ecx, [ebp - 0x38]
push ecx
mov ecx, dword [ebx + 8]
call fcn.00401810
mov edx, dword [ebp - 0x66c]
or edx, 1
mov dword [ebp - 0x66c], edx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x510]
call fcn.00401ab0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4f8]
call fcn.00401ab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4e0]
call fcn.00401ab0
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00437b28
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret