Function at 0x402b30
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42398d
mov eax, dword fs:[0]
push eax
sub esp, 0x254
mov eax, dword [0x42d210]
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 eax, dword [ebp + 0xc]
mov edi, ecx
mov dword [ebp - 0x244], edi
mov dword [ebp - 0x24c], eax
call fcn.00404d80
xor esi, esi
mov dword [ebp - 4], esi
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
lea ebx, [edi + 4]
mov ecx, section..data
mov dword [ebp - 0x25c], ebx
call eax
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 1
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
lea ebx, [edi + 8]
mov ecx, section..data
mov dword [ebp - 0x258], ebx
call eax
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 2
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], 0xffffffff
mov dword [edi + 0x18], esi
mov dword [edi + 0x20], esi
mov dword [edi + 0x24], esi
mov dword [edi + 0x28], esi
mov dword [edi + 0x2c], esi
mov dword [edi + 0x30], esi
mov byte [ebp - 4], 4
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
mov dword [ebp - 0x248], esi
mov byte [ebp - 0x229], 0
call eax
add eax, 0x10
mov dword [ebp - 0x230], eax
mov byte [ebp - 4], 5
mov dword [ebp - 0x23c], esi
cmp dword [ebp + 8], esi
jle 0x403116
lea esp, [esp]
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x23c]
mov edi, dword [ecx + edx*4]
xor ebx, ebx
lea esi, [ebp - 0x238]
mov dword [ebp - 0x238], ebx
mov dword [ebp - 0x234], ebx
call fcn.00409750
lea eax, [ebp - 0x254]
push eax
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.00401b30
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x244]
mov ecx, dword [ecx]
push ecx
mov ecx, eax
call fcn.0040ba90
mov byte [ebp - 4], 8
cmp dword [ebp - 0x254], ebx
je 0x402cbd
mov edx, dword [ebp - 0x250]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x402cbd
mov ecx, dword [ebp - 0x254]
cmp ecx, ebx
je 0x402cae
mov eax, dword [ecx]
mov edx, dword [eax + 0x20]
push 1
call edx
mov eax, dword [ebp - 0x250]
push eax
call fcn.0041099c
add esp, 4
cmp byte [ebp - 0x229], 0
mov byte [ebp - 4], 6
mov dword [ebp - 0x254], ebx
mov dword [ebp - 0x250], ebx
je 0x402de0
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x240], esi
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x238]
cmp eax, ebx
je 0x402d28
test eax, 0xffff0000
jne 0x402d2c
movzx edi, ax
push edi
call fcn.00401080
add esp, 4
cmp eax, ebx
je 0x402d5a
push eax
mov eax, edi
lea edi, [ebp - 0x240]
call fcn.004013d0
jmp 0x402d54
xor eax, eax
jmp 0x402d3f
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x402d30
sub eax, edx
sar eax, 1
mov ecx, dword [ebp - 0x238]
push ecx
lea edx, [ebp - 0x240]
push edx
mov ebx, eax
call fcn.004053b0
mov esi, dword [ebp - 0x240]
mov byte [ebp - 4], 0xa
mov ebx, dword [ebp - 0x230]
lea edi, [esi - 0x10]
add ebx, 0xfffffff0
cmp edi, ebx
je 0x402db7
cmp dword [ebx + 0xc], 0
jl 0x402da7
mov eax, dword [edi]
cmp eax, dword [ebx]
jne 0x402da7
mov eax, edi
call fcn.00401560
mov esi, eax
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x402d9c
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add esi, 0x10
mov dword [ebp - 0x230], esi
jmp 0x402db7
mov ebx, dword [esi - 0xc]
push esi
lea ecx, [ebp - 0x230]
push ecx
call fcn.004053b0
mov byte [ebp - 4], 6
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x402dd4
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov byte [ebp - 0x229], 0
jmp 0x402f3a
mov esi, dword [ebp - 0x238]
cmp esi, 0x426704
je 0x402f21
cmp esi, ebx
je 0x402e33
mov ecx, 0x426704
mov eax, esi
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x402e26
cmp dx, bx
je 0x402e22
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x402e26
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x402e00
xor eax, eax
jmp 0x402e2b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x402f21
cmp esi, str.__debug
je 0x402f21
cmp esi, ebx
je 0x402e83
mov ecx, str.__debug
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x402e76
cmp dx, bx
je 0x402e72
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x402e76
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x402e50
xor eax, eax
jmp 0x402e7b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x402f21
cmp esi, 0x42671c
je 0x402f15
cmp esi, ebx
je 0x402ecf
mov ecx, 0x42671c
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x402ec6
cmp dx, bx
je 0x402ec2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x402ec6
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x402ea0
xor eax, eax
jmp 0x402ecb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x402f15
cmp esi, str.__verbose
je 0x402f15
cmp esi, ebx
je 0x402f3a
mov eax, dword [ebp - 0x238]
mov ecx, str.__verbose
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x402f0c
test dx, dx
je 0x402f08
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x402f0c
add eax, 4
add ecx, 4
test dx, dx
jne 0x402ee6
xor eax, eax
jmp 0x402f11
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402f3a
mov dword [ebp - 0x248], 2
jmp 0x402f3a
mov eax, 1
cmp dword [ebp - 0x248], eax
jge 0x402f34
mov dword [ebp - 0x248], eax
mov byte [ebp - 0x229], al
xor edi, edi
mov byte [ebp - 4], 5
cmp dword [ebp - 0x238], edi
je 0x402f73
mov esi, dword [ebp - 0x234]
cmp esi, edi
je 0x402f73
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x402f73
mov ecx, dword [ebp - 0x238]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push esi
call fcn.0041099c
add esp, 4
mov eax, dword [ebp - 0x23c]
inc eax
mov dword [ebp - 0x238], edi
mov dword [ebp - 0x234], edi
mov dword [ebp - 0x23c], eax
cmp eax, dword [ebp + 8]
jl 0x402c30
mov eax, dword [ebp - 0x248]
test eax, eax
je 0x403110
mov edx, dword [ebp - 0x230]
cmp dword [edx - 0xc], edi
je 0x403110
call fcn.00408250
mov edi, dword [ebp - 0x230]
cmp dword [edi - 0xc], 0
jle 0x403095
push 0x25
push edi
call fcn.00410c5a
add esp, 8
test eax, eax
je 0x403077
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
je 0x403077
mov eax, edi
lea esi, [ebp - 0x24c]
call fcn.00408b80
mov byte [ebp - 4], 0xb
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
je 0x403051
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40303b
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40303b
call fcn.00401560
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x403030
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x230], ebx
jmp 0x40304b
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x230]
push ecx
call fcn.004053b0
mov edi, dword [ebp - 0x230]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x403077
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [edi - 0xc], 0
jle 0x403095
push 0x5c
push edi
call fcn.00410c5a
add esp, 8
test eax, eax
je 0x403095
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jne 0x403105
lea ecx, [ebp - 0x228]
push ecx
call fcn.00404ea0
lea esi, [ebp - 0x228]
call fcn.00401e80
lea edx, [ebp - 0x23c]
push edx
mov ecx, esi
call fcn.00405d10
mov ebx, eax
push 1
push 0x426390
mov byte [ebp - 4], 0xc
call fcn.004056f0
mov eax, dword [edi - 0xc]
push eax
push edi
call fcn.004056f0
mov eax, ebx
call fcn.004082d0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403110
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x403110
lea eax, [ebp - 0x230]
call fcn.004082d0
mov edi, dword [ebp - 0x244]
mov ebx, dword [ebp - 0x25c]
mov ecx, dword [ebp - 0x258]
call fcn.00401ed0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40314d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
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.004109a7
mov esp, ebp
pop ebp
ret 8