Function at 0x509c00
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b1f84
mov eax, dword fs:[0]
push eax
sub esp, 0x308
mov eax, dword [0x63b404]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x224], edx
mov dword [ebp - 0x21c], ecx
mov eax, dword [ebp + 8]
push ecx
push 0x63f058
lea ecx, [ebp - 0x2f0]
mov dword [ebp - 0x25c], eax
call fcn.0054c920
lea ecx, [ebp - 0x2f0]
mov dword [ebp - 4], 0
call fcn.0054d4a0
mov edx, eax
mov dword [ebp - 0x2b8], edx
test edx, edx
je 0x50a9a3
mov ecx, dword [edx + 4]
xor ebx, ebx
mov dword [ebp - 0x230], ebx
test ecx, ecx
je 0x50a9a3
cmp ebx, ecx
jae 0x50a991
mov edi, dword [edx]
test edi, edi
je 0x50a991
mov edi, dword [edi + ebx*4]
test edi, edi
je 0x50a991
xor esi, esi
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x258], esi
mov dword [ebp - 0x254], esi
push 0x63eeb8
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 1
call fcn.00545740
mov byte [ebp - 4], 2
mov eax, dword [edi]
test eax, eax
je 0x50a93b
push esi
push esi
push esi
push esi
lea ecx, [ebp - 0x234]
push ecx
push esi
push esi
push esi
push esi
push esi
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x50a93b
cmp dword [ebp - 0x234], eax
jbe 0x50a93b
push 8
call fcn.0056f5ce
mov ebx, eax
add esp, 4
mov dword [ebp - 0x238], ebx
mov dword [ebx], esi
mov dword [ebx + 4], esi
cmp dword [ebp - 0x234], esi
jbe 0x509ddc
nop dword [eax]
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00574370
add esp, 0xc
mov dword [ebp - 0x218], 0xff
lea eax, [ebp - 0x218]
push 0
push 0
push 0
push 0
push eax
lea eax, [ebp - 0x210]
push eax
push esi
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x509dd3
push 8
call fcn.0056f5ce
add esp, 4
mov dword [ebp - 0x2fc], eax
lea ecx, [ebp - 0x210]
mov byte [ebp - 4], 3
push ecx
mov ecx, eax
call fcn.00545630
push 0
push eax
mov ecx, ebx
mov byte [ebp - 4], 2
call fcn.00545290
inc esi
cmp esi, dword [ebp - 0x234]
jb 0x509d60
cmp dword [edi], 0
je 0x509e52
push 2
mov dword [ebp - 0x270], 0
call fcn.0056f8a6
mov esi, eax
add esp, 4
mov dword [ebp - 0x274], esi
test esi, esi
je 0x509e08
xor eax, eax
mov word [esi], ax
jmp 0x509e12
mov dword [ebp - 0x270], 0
lea eax, [ebp - 0x258]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x274]
mov ecx, edi
push eax
call fcn.0054d330
mov byte [ebp - 4], 2
test esi, esi
je 0x509e48
push 2
push esi
call fcn.0056f898
add esp, 8
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x270], 0
mov ecx, dword [ebp - 0x238]
xor ebx, ebx
mov dword [ebp - 0x218], ebx
mov eax, dword [ecx + 4]
test eax, eax
je 0x50a38c
cmp ebx, eax
jae 0x50a37a
mov esi, dword [ecx]
test esi, esi
je 0x50a37a
mov esi, dword [esi + ebx*4]
test esi, esi
je 0x50a37a
push 0x63ed10
mov ecx, esi
call fcn.00547190
test al, al
je 0x509f5d
push esi
lea ecx, [ebp - 0x28c]
call fcn.005456c0
mov byte [ebp - 4], 5
cmp dword [edi], 0
je 0x509f1a
lea ecx, [ebp - 0x28c]
mov dword [ebp - 0x214], 4
call fcn.00546d80
mov ebx, eax
lea eax, [ebp - 0x214]
push eax
push 0
lea eax, [ebp - 0x2a8]
push eax
push 0
push ebx
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x509f0b
cmp dword [ebp - 0x2a8], 4
jne 0x509f0b
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x2ac]
push eax
push 0
push 0
push ebx
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push ebx
call fcn.0056fc1b
mov ebx, dword [ebp - 0x218]
add esp, 4
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x28c]
test eax, eax
je 0x509f3d
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebp - 0x28c], 0
mov ecx, dword [ebp - 0x2ac]
mov dword [ebp - 0x288], 0
call fcn.00545830
mov dword [ebp - 0x214], eax
jmp 0x50a34b
push 0x63ef00
mov ecx, esi
call fcn.00547190
test al, al
je 0x50a032
push esi
lea ecx, [ebp - 0x294]
call fcn.005456c0
mov byte [ebp - 4], 6
cmp dword [edi], 0
je 0x509fef
lea ecx, [ebp - 0x294]
mov dword [ebp - 0x220], 4
call fcn.00546d80
mov ebx, eax
lea eax, [ebp - 0x220]
push eax
push 0
lea eax, [ebp - 0x2b0]
push eax
push 0
push ebx
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x509fe0
cmp dword [ebp - 0x2b0], 4
jne 0x509fe0
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x2b4]
push eax
push 0
push 0
push ebx
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push ebx
call fcn.0056fc1b
mov ebx, dword [ebp - 0x218]
add esp, 4
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x294]
test eax, eax
je 0x50a012
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebp - 0x294], 0
mov ecx, dword [ebp - 0x2b4]
mov dword [ebp - 0x290], 0
call fcn.00545830
mov dword [ebp - 0x220], eax
jmp 0x50a34b
push 0x63ebd8
mov ecx, esi
call fcn.00547190
test al, al
je 0x50a0fc
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x23c], 0
push esi
lea ecx, [ebp - 0x29c]
mov byte [ebp - 4], 7
call fcn.005456c0
lea eax, [ebp - 0x240]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x29c]
mov ecx, edi
push eax
call fcn.0054d330
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x29c]
test eax, eax
je 0x50a0a6
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebp - 0x29c], 0
cmp dword [ebp - 0x23c], 0
mov dword [ebp - 0x298], 0
jle 0x50a0ca
lea ecx, [ebp - 0x240]
call fcn.00545a50
mov dword [ebp - 0x228], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x240]
test ecx, ecx
je 0x50a0ed
push 2
push ecx
call fcn.0056f898
add esp, 8
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x23c], 0
jmp 0x50a34b
push 0x63edf0
mov ecx, esi
call fcn.00547190
test al, al
je 0x50a1c6
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
push esi
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 9
call fcn.005456c0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x2a4]
mov ecx, edi
push eax
call fcn.0054d330
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x2a4]
test eax, eax
je 0x50a170
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebp - 0x2a4], 0
cmp dword [ebp - 0x244], 0
mov dword [ebp - 0x2a0], 0
jle 0x50a194
lea ecx, [ebp - 0x248]
call fcn.00545a50
mov dword [ebp - 0x22c], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x248]
test ecx, ecx
je 0x50a1b7
push 2
push ecx
call fcn.0056f898
add esp, 8
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
jmp 0x50a34b
push 0x63ebc0
mov ecx, esi
call fcn.00547190
test al, al
je 0x50a247
mov dword [ebp - 0x27c], 0
mov dword [ebp - 0x278], 0
push esi
lea ecx, [ebp - 0x2e8]
mov byte [ebp - 4], 0xb
call fcn.005456c0
lea eax, [ebp - 0x27c]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x2e8]
mov ecx, edi
push eax
call fcn.0054d330
lea ecx, [ebp - 0x2e8]
mov byte [ebp - 4], 0xb
call fcn.00500b70
cmp dword [ebp - 0x278], 0
jle 0x50a23c
lea ecx, [ebp - 0x27c]
call fcn.00545a50
mov dword [ebp - 0x260], eax
lea ecx, [ebp - 0x27c]
jmp 0x50a342
push 0x63ece8
mov ecx, esi
call fcn.00547190
test al, al
je 0x50a2c6
mov dword [ebp - 0x26c], 0
mov dword [ebp - 0x268], 0
push esi
lea ecx, [ebp - 0x2c8]
mov byte [ebp - 4], 0xd
call fcn.005456c0
lea eax, [ebp - 0x26c]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x2c8]
mov ecx, edi
push eax
call fcn.0054d330
lea ecx, [ebp - 0x2c8]
mov byte [ebp - 4], 0xd
call fcn.00500b70
cmp dword [ebp - 0x268], 0
jle 0x50a2be
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x250]
call fcn.00546210
lea ecx, [ebp - 0x26c]
jmp 0x50a342
push 0x63ec60
mov ecx, esi
call fcn.00547190
test al, al
je 0x50a34b
mov dword [ebp - 0x284], 0
mov dword [ebp - 0x280], 0
push esi
lea ecx, [ebp - 0x2d0]
mov byte [ebp - 4], 0xf
call fcn.005456c0
lea eax, [ebp - 0x284]
mov byte [ebp - 4], 0x10
push eax
lea eax, [ebp - 0x2d0]
mov ecx, edi
push eax
call fcn.0054d330
lea ecx, [ebp - 0x2d0]
mov byte [ebp - 4], 0xf
call fcn.00500b70
cmp dword [ebp - 0x280], 0
jle 0x50a33c
lea ecx, [ebp - 0x284]
call fcn.00545a50
mov dword [ebp - 0x264], eax
lea ecx, [ebp - 0x284]
mov byte [ebp - 4], 2
call fcn.00500b70
mov ecx, dword [esi]
test ecx, ecx
je 0x50a362
push 2
push ecx
call fcn.0056f898
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056f898
mov ecx, dword [ebp - 0x238]
add esp, 8
mov eax, dword [ecx + 4]
inc ebx
mov dword [ebp - 0x218], ebx
cmp ebx, eax
jb 0x509e73
mov eax, dword [ecx]
test eax, eax
je 0x50a3a9
push 4
push eax
call fcn.0056f898
mov ecx, dword [ebp - 0x238]
add esp, 8
mov dword [ecx], 0
push 8
push ecx
mov dword [ecx + 4], 0
call fcn.0056f898
mov ebx, dword [ebp - 0x214]
add esp, 8
test ebx, ebx
je 0x50a830
mov eax, dword [ebp - 0x220]
test eax, eax
je 0x50a807
mov esi, dword [ebp - 0x228]
test esi, esi
je 0x50a807
mov ecx, dword [ebp - 0x22c]
test ecx, ecx
je 0x50a807
mov edi, dword [ebp - 0x224]
mov edx, edi
push ebx
push eax
call fcn.0050bd70
add esp, 8
test al, al
je 0x50a807
mov edx, dword [ebp - 0x21c]
mov ecx, ebx
push edi
call fcn.0050d370
add esp, 4
test al, al
je 0x50a57d
mov edx, dword [ebp - 0x21c]
mov ecx, ebx
push edi
call fcn.00510330
mov ebx, eax
add esp, 4
mov dword [ebp - 0x218], ebx
test ebx, ebx
je 0x50a801
push 0x63eea0
push 0x63ebb8
mov ecx, ebx
call fcn.00535430
mov ecx, eax
call fcn.00547190
test al, al
je 0x50a570
push str.data
lea ecx, [ebp - 0x304]
call fcn.005455a0
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x11
call fcn.00532760
lea ecx, [ebp - 0x304]
mov byte [ebp - 4], 2
mov bl, al
call fcn.00500b70
test bl, bl
mov ebx, dword [ebp - 0x218]
je 0x50a570
mov ecx, ebx
call fcn.00534620
test eax, eax
je 0x50a570
push 0
mov ecx, ebx
call fcn.00532cd0
test al, al
je 0x50a570
push 0x63ebf8
mov ecx, ebx
call fcn.00535430
push 0x63f138
mov ecx, ebx
mov edi, eax
call fcn.00535430
push 0x63ee98
mov ecx, ebx
mov esi, eax
call fcn.00535430
push 1
push edi
mov edi, dword [ebp - 0x224]
mov ecx, ebx
push esi
mov esi, dword [ebp - 0x21c]
push edi
push esi
push eax
push 0x63f0a8
call fcn.00535430
push eax
push 0x63ed70
mov ecx, ebx
call fcn.00535430
mov edx, dword [ebp - 0x230]
mov ecx, eax
call fcn.00508270
add esp, 0x1c
test al, al
je 0x50a570
mov ecx, edi
call fcn.00545a50
mov ecx, esi
mov edi, eax
call fcn.00545a50
push 0x63eed8
mov ecx, ebx
mov esi, eax
call fcn.00535430
push eax
push 0x63ed70
mov ecx, ebx
call fcn.00535430
push eax
push edi
push esi
push 0x63ee98
mov ecx, ebx
call fcn.00535430
mov ecx, dword [ebp - 0x25c]
push eax
call fcn.00502020
push ecx
mov ecx, ebx
call fcn.004ff890
jmp 0x50a801
push 0x61bab8
lea ecx, [ebp - 0x30c]
call fcn.005455a0
push eax
lea ecx, [ebp - 0x2d8]
mov byte [ebp - 4], 0x12
call fcn.005456c0
push ecx
lea eax, [ebp - 0x2d8]
mov byte [ebp - 4], 0x13
push eax
mov ecx, esi
call fcn.00546950
push eax
push 0
mov ecx, esi
call fcn.005469d0
mov edi, eax
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x218], edi
call fcn.00500b70
lea ecx, [ebp - 0x30c]
mov byte [ebp - 4], 2
call fcn.00500b70
call fcn.00532130
push edi
lea ecx, [ebp - 0x2f8]
mov dword [ebp - 0x2c0], eax
call fcn.005456c0
push str.ready
lea ecx, [ebp - 0x2e0]
mov byte [ebp - 4], 0x14
call fcn.005455a0
push str.INSERT_INTO_games___s___s___s___s___s___s___s___s___s___s___s___s___s___s___s__VALUES___s___s___s___d___d___s___s___s___s___s___s___s___s___s___d__
lea ecx, [ebp - 0x314]
mov byte [ebp - 4], 0x15
call fcn.005455a0
mov esi, eax
push 1
push edi
push 0x63f250
push dword [ebp - 0x228]
lea ecx, [ebp - 0x2f8]
mov byte [ebp - 4], 0x16
push ebx
push ebx
push dword [ebp - 0x224]
push dword [ebp - 0x22c]
call fcn.00548990
push eax
lea eax, [ebp - 0x250]
push eax
push accept
push 0
lea eax, [ebp - 0x2e0]
push eax
push dword [ebp - 0x21c]
push ebx
push 0x63ed30
push 0x63ed70
push 0x63ef30
push 0x63f138
push 0x63f1f8
push 0x63eed8
push 0x63edd8
push 0x63f0a8
push 0x63ee00
push 0x63ebf8
push 0x63f090
push 0x63eda0
push 0x63ee90
push 0x63ebd0
push 0x63ee98
push esi
call fcn.00545b40
add esp, 0x7c
mov ebx, eax
lea ecx, [ebp - 0x314]
mov dword [ebp - 0x2bc], ebx
call fcn.00500b70
lea ecx, [ebp - 0x2e0]
call fcn.00500b70
lea ecx, [ebp - 0x2f8]
mov byte [ebp - 4], 2
call fcn.00500b70
test ebx, ebx
je 0x50a7c2
mov ecx, dword [0x648be8]
test ecx, ecx
je 0x50a799
push 0
push ebx
call fcn.005001c0
test al, al
je 0x50a799
mov esi, dword [ebp - 0x214]
lea eax, [ebp - 0x250]
mov edx, dword [ebp - 0x230]
mov ecx, edi
push 1
push eax
push dword [ebp - 0x228]
push dword [ebp - 0x224]
push dword [ebp - 0x21c]
push esi
push dword [ebp - 0x22c]
call fcn.00508270
add esp, 0x1c
test al, al
je 0x50a799
mov ecx, esi
call fcn.00545a50
mov ecx, edi
mov ebx, eax
call fcn.00545a50
mov ecx, dword [ebp - 0x224]
mov edi, eax
call fcn.00545a50
mov ecx, dword [ebp - 0x21c]
mov esi, eax
call fcn.00545a50
mov ecx, dword [ebp - 0x214]
push ebx
push edi
push esi
push eax
call fcn.00545a50
mov ecx, dword [ebp - 0x25c]
push eax
call fcn.00502020
mov edi, dword [ebp - 0x218]
mov ebx, dword [ebp - 0x2bc]
mov eax, dword [ebx]
test eax, eax
je 0x50a7b0
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056f898
add esp, 8
mov eax, dword [ebp - 0x2c0]
test eax, eax
je 0x50a7d4
push ecx
mov ecx, eax
call fcn.004ff890
test edi, edi
je 0x50a801
mov eax, dword [edi]
test eax, eax
je 0x50a7ef
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [edi], 0
push 8
push edi
mov dword [edi + 4], 0
call fcn.0056f898
add esp, 8
mov ebx, dword [ebp - 0x214]
mov eax, dword [ebx]
test eax, eax
je 0x50a81e
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056f898
add esp, 8
mov ebx, dword [ebp - 0x220]
test ebx, ebx
je 0x50a863
mov eax, dword [ebx]
test eax, eax
je 0x50a851
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056f898
add esp, 8
mov ebx, dword [ebp - 0x228]
test ebx, ebx
je 0x50a896
mov eax, dword [ebx]
test eax, eax
je 0x50a884
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056f898
add esp, 8
mov ebx, dword [ebp - 0x22c]
test ebx, ebx
je 0x50a8c9
mov eax, dword [ebx]
test eax, eax
je 0x50a8b7
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056f898
add esp, 8
mov ebx, dword [ebp - 0x260]
test ebx, ebx
je 0x50a8fc
mov eax, dword [ebx]
test eax, eax
je 0x50a8ea
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056f898
add esp, 8
mov ebx, dword [ebp - 0x264]
test ebx, ebx
je 0x50a92f
mov eax, dword [ebx]
test eax, eax
je 0x50a91d
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056f898
add esp, 8
mov esi, dword [ebp - 0x258]
mov ebx, dword [ebp - 0x230]
mov eax, dword [ebp - 0x250]
test eax, eax
je 0x50a95a
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0
mov byte [ebp - 4], 0
test esi, esi
je 0x50a981
push 2
push esi
call fcn.0056f898
add esp, 8
mov dword [ebp - 0x258], 0
mov edx, dword [ebp - 0x2b8]
mov dword [ebp - 0x254], 0
mov ecx, dword [edx + 4]
inc ebx
mov dword [ebp - 0x230], ebx
cmp ebx, ecx
jb 0x509c91
mov eax, dword [ebp - 0x2f0]
test eax, eax
je 0x50a9e8
cmp eax, 0x80000000
je 0x50a9db
cmp eax, 0x80000005
je 0x50a9db
cmp eax, reloc.WS2_32.dll_accept
je 0x50a9db
cmp eax, reloc.WS2_32.dll_bind
je 0x50a9db
cmp eax, 0x80000004
je 0x50a9db
cmp eax, reloc.WS2_32.dll_closesocket
je 0x50a9db
xor cl, cl
jmp 0x50a9dd
mov cl, 1
test cl, cl
jne 0x50a9e8
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056f3c2
mov esp, ebp
pop ebp
ret