Function at 0x10051d00
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100db3f4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x220
push esi
mov eax, dword [0x101640c4]
mov edx, dword [eax]
mov ecx, dword [0x101640c4]
mov eax, dword [edx + 0x30]
call eax
mov dword [ebp - 0x34], eax
mov ecx, dword [0x101640cc]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x34]
push ecx
mov ecx, dword [0x101640cc]
call dword [ebp - 0x68]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x10051d5d
jmp 0x100523e2
mov edx, dword [0x101640c4]
mov eax, dword [edx]
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0x6c], ecx
lea edx, [ebp - 0x22c]
push edx
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [0x101640c4]
call dword [ebp - 0x6c]
movzx ecx, al
test ecx, ecx
jne 0x10051d8b
jmp 0x100523e2
movzx edx, byte [0x10162409]
test edx, edx
je 0x10051db7
mov eax, dword [0x101640c4]
mov edx, dword [eax]
mov ecx, dword [0x101640c4]
mov eax, dword [edx + 0x170]
call eax
movzx ecx, al
test ecx, ecx
je 0x10051db7
jmp 0x100523e2
movzx edx, byte [ebp + 8]
test edx, edx
je 0x10052130
mov ecx, dword [ebp - 0x14]
call fcn.100545c0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x70], 0x13a4
lea eax, [ebp - 0x70]
push eax
mov ecx, 0x101622f8
call fcn.100104a0
mov dword [ebp - 0x28], eax
mov ecx, dword [0x10165614]
mov edx, dword fs:[0x2c]
mov eax, dword [edx + ecx*4]
mov ecx, dword [0x1015fc8c]
cmp ecx, dword [eax + 4]
jle 0x10051e41
push 0x1015fc8c
call fcn.100d5da0
add esp, 4
cmp dword [0x1015fc8c], 0xffffffff
jne 0x10051e41
mov dword [ebp - 4], 0
push 0
mov ecx, 0x1015fc88
call fcn.1002a710
mov dword [ebp - 4], 0xffffffff
push 0x1015fc8c
call fcn.100d5d56
add esp, 4
mov edx, dword [0x101640cc]
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x74], ecx
push ecx
mov ecx, esp
mov dword [ebp - 0xc0], esp
mov edx, 4
imul eax, edx, 0
add eax, dword [ebp - 0x18]
push eax
call fcn.10039140
mov ecx, dword [0x101640cc]
call dword [ebp - 0x74]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x10051ed2
mov ecx, dword [0x101640cc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x78], eax
push ecx
mov ecx, esp
mov dword [ebp - 0xc4], esp
push 0x1015fc88
call fcn.10039140
mov ecx, dword [0x101640cc]
call dword [ebp - 0x78]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x10051ed2
push 0x1015fc88
lea ecx, [ebp - 0x7c]
call fcn.1003b240
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + edx], ecx
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x14]
call fcn.100d21a0
movzx eax, al
test eax, eax
je 0x10051f09
movzx ecx, byte [0x10162409]
test ecx, ecx
je 0x10051f4e
mov edx, dword [0x101640c4]
mov eax, dword [edx]
mov ecx, dword [0x101640c4]
mov edx, dword [eax + 0x170]
call edx
movzx eax, al
test eax, eax
je 0x10051f4e
cmp dword [ebp - 0x10], 0
je 0x10051f49
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x10]
mov eax, dword [edx + 0x10]
call eax
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x34]
call eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x10]
mov eax, dword [edx + 0x10]
call eax
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x40]
mov eax, dword [edx + 4]
call eax
jmp 0x100523e2
cmp dword [ebp - 0x28], 0
je 0x1005212b
mov ecx, dword [ebp - 0x28]
cmp dword [ecx + 0x38], 0
je 0x1005212b
cmp dword [ebp - 0x10], 0
jne 0x1005210a
mov edx, dword [0x10165614]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edx*4]
mov edx, dword [0x1015fc94]
cmp edx, dword [ecx + 4]
jle 0x10051fc7
push 0x1015fc94
call fcn.100d5da0
add esp, 4
cmp dword [0x1015fc94], 0xffffffff
jne 0x10051fc7
mov dword [ebp - 4], 1
call fcn.10054150
mov dword [0x1015fc90], eax
mov dword [ebp - 4], 0xffffffff
push 0x1015fc94
call fcn.100d5d56
add esp, 4
mov eax, dword [0x101640cc]
mov edx, dword [eax]
mov ecx, dword [0x101640cc]
mov eax, dword [edx + 0x18]
call eax
add eax, 1
mov dword [ebp - 0x24], eax
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
and eax, 0x80000fff
jns 0x10051ff3
dec eax
or eax, 0xfffff000
inc eax
mov dword [ebp - 0x44], eax
mov ecx, dword [0x1015fc90]
mov dword [ebp - 0x80], ecx
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x24]
push eax
call dword [ebp - 0x80]
add esp, 8
mov ecx, dword [0x101640cc]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0x24]
push ecx
mov ecx, dword [0x101640cc]
call dword [ebp - 0x84]
mov dword [ebp - 0x10], eax
mov edx, dword [0x10165614]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edx*4]
mov edx, dword [0x1015fc9c]
cmp edx, dword [ecx + 4]
jle 0x1005209d
push 0x1015fc9c
call fcn.100d5da0
add esp, 4
cmp dword [0x1015fc9c], 0xffffffff
jne 0x1005209d
mov dword [ebp - 4], 2
push str.55_8B_EC_83_E4_F8_51_53_56_57_8B_F1
push 0x100e4ec0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call fcn.100675e0
add esp, 8
mov dword [0x1015fc98], eax
mov dword [ebp - 4], 0xffffffff
push 0x1015fc9c
call fcn.100d5d56
add esp, 4
mov eax, dword [0x1015fc98]
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x8c], ecx
push 0x100e4fe4
mov ecx, dword [ebp - 0x10]
call dword [ebp - 0x8c]
mov edx, 4
imul eax, edx, 0
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x44]
shl ecx, 0x10
or ecx, dword [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x94]
call fcn.1002a710
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x94]
mov dword [edx], eax
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + edx]
mov dword [0x1015fc88], ecx
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x10]
call fcn.10052400
mov edx, dword [ebp - 0x224]
push edx
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.10053230
add esp, 0xc
jmp 0x100523e2
mov ecx, dword [ebp - 0x14]
call fcn.100544e0
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x1c], 0
jmp 0x1005214d
mov edx, dword [ebp - 0x1c]
add edx, 1
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x48]
lea ecx, [ecx + eax*4]
call fcn.10051cd0
movzx edx, al
test edx, edx
je 0x1005221e
mov eax, dword [0x101640cc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x98], edx
push ecx
mov ecx, esp
mov dword [ebp - 0xc8], esp
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x48]
lea eax, [edx + eax*4]
push eax
call fcn.10039140
mov ecx, dword [0x101640cc]
call dword [ebp - 0x98]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jne 0x100521a5
jmp 0x10052144
mov ecx, dword [ebp - 0x2c]
call fcn.1000c100
mov ecx, eax
call fcn.1003e450
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
movsx edx, word [ecx]
push edx
call fcn.100541e0
add esp, 4
movzx eax, al
test eax, eax
je 0x100521d6
mov dword [ebp - 0x50], 0x2a
jmp 0x100521df
mov ecx, dword [ebp - 0x4c]
movsx edx, word [ecx]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x9c], eax
lea ecx, [ebp - 0x9c]
push ecx
mov ecx, 0x101622f8
call fcn.100104a0
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0x224]
push edx
mov eax, dword [ebp - 0xa0]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.10053230
add esp, 0xc
jmp 0x10052144
mov ecx, dword [ebp - 0x14]
call fcn.100546a0
push eax
lea ecx, [ebp - 0x54]
call fcn.1003b240
lea ecx, [ebp - 0x54]
call fcn.10051cd0
movzx edx, al
test edx, edx
jne 0x10052243
jmp 0x100523e2
mov eax, dword [0x101640cc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xa4], edx
push ecx
mov ecx, esp
mov dword [ebp - 0xcc], esp
lea eax, [ebp - 0x54]
push eax
call fcn.10039140
mov ecx, dword [0x101640cc]
call dword [ebp - 0xa4]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x1005227f
jmp 0x100523e2
mov ecx, dword [ebp - 0x30]
call fcn.10054780
push eax
lea ecx, [ebp - 0x58]
call fcn.1003b240
lea ecx, [ebp - 0x58]
call fcn.10051cd0
movzx ecx, al
test ecx, ecx
jne 0x100522a4
jmp 0x100523e2
mov edx, dword [0x101640cc]
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xa8], ecx
push ecx
mov ecx, esp
mov dword [ebp - 0xd0], esp
lea edx, [ebp - 0x58]
push edx
call fcn.10039140
mov ecx, dword [0x101640cc]
call dword [ebp - 0xa8]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x100522e1
jmp 0x100523e2
mov ecx, dword [ebp - 0x20]
call fcn.1000c100
mov ecx, eax
call fcn.1003e450
movsx eax, word [eax]
mov dword [ebp - 0xac], eax
lea ecx, [ebp - 0xac]
push ecx
mov ecx, 0x101620d4
call fcn.10053980
test eax, eax
je 0x100523e2
mov ecx, dword [ebp - 0x20]
call fcn.1000c100
mov ecx, eax
call fcn.1003e450
movsx edx, word [eax]
mov dword [ebp - 0xb0], edx
lea eax, [ebp - 0xb0]
push eax
mov ecx, 0x101620d4
call fcn.100536c0
mov ecx, dword [eax]
mov dword [ebp - 0xb4], ecx
mov edx, dword [0x101640f0]
mov eax, dword [edx]
mov ecx, dword [eax + 8]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0xb4]
push edx
mov ecx, dword [0x101640f0]
call dword [ebp - 0xb8]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x30]
call fcn.10054f60
mov ecx, dword [ebp - 0x60]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x20]
call fcn.10054860
push eax
lea ecx, [ebp - 0x5c]
call fcn.1003b240
lea ecx, [ebp - 0x5c]
call fcn.10051cd0
movzx edx, al
test edx, edx
jne 0x10052399
jmp 0x100523e2
mov eax, dword [0x101640cc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xbc], edx
push ecx
mov ecx, esp
mov dword [ebp - 0xd4], esp
lea eax, [ebp - 0x5c]
push eax
call fcn.10039140
mov ecx, dword [0x101640cc]
call dword [ebp - 0xbc]
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0
jne 0x100523d2
jmp 0x100523e2
mov esi, dword [ebp - 0x60]
add esi, 1
mov ecx, dword [ebp - 0x64]
call fcn.10055040
mov dword [eax], esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret