Function at 0x40bee4
Capabilities:
Get geographical location

Disassembly:
push ebp
sub esp, 0x48
push 0x64
mov eax, 0x46ee9e
call fcn.00450123
mov edi, ecx
mov dword [ebp + 0x30], edi
xor esi, esi
mov dword [ebp + 0x44], esi
mov dword [ebp - 4], esi
mov byte [ebp + 0x4b], 1
call fcn.00430032
push eax
lea ecx, [ebp + 8]
call fcn.00401358
push esi
mov byte [ebp - 4], 1
call fcn.00450544
push eax
call fcn.004529be
pop ecx
pop ecx
call fcn.004529d0
push 0x64
pop ecx
cdq
idiv ecx
mov esi, 0x474b48
push esi
lea ecx, [ebp - 0x2c]
inc edx
mov dword [ebp - 0x6c], edx
call fcn.00408623
lea eax, [ebp + 0x54]
push eax
push dword [ebp + 0x6c]
lea ecx, [ebp + 0x18]
mov byte [ebp - 4], 2
mov dword [ebp + 0x44], 1
call fcn.00403b17
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp]
push eax
lea ecx, [ebp + 0x54]
call fcn.00405bd8
lea ecx, [ebp + 0x18]
push ecx
mov ecx, eax
call fcn.00402141
test al, al
jne 0x40bfa8
push esi
lea ecx, [ebp - 0x48]
call fcn.00408623
push 3
pop eax
mov dword [ebp - 4], eax
mov dword [ebp + 0x44], eax
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp + 0x54]
call fcn.0040a673
mov ecx, dword [eax]
call fcn.00411834
test al, al
je 0x40bfa8
mov bl, 1
jmp 0x40bfaa
xor bl, bl
test byte [ebp + 0x44], 2
je 0x40bfc0
and dword [ebp + 0x44], 0xfffffffd
push 0
push 1
lea ecx, [ebp - 0x48]
call fcn.0040402c
test byte [ebp + 0x44], 1
mov dword [ebp - 4], 1
je 0x40bfdd
and dword [ebp + 0x44], 0xfffffffe
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.0040402c
test bl, bl
je 0x40c03c
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408623
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 4
call fcn.0040a673
lea ecx, [ebp - 0x48]
push ecx
mov ecx, dword [eax]
call fcn.00411ca8
cmp dword [eax + 0x18], 8
mov byte [ebp - 4], 5
jb 0x40c014
mov eax, dword [eax + 4]
jmp 0x40c017
add eax, 4
push eax
lea ecx, [ebp + 8]
call fcn.00404cb8
push 0
push 1
lea ecx, [ebp - 0x48]
call fcn.0040402c
push 0
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.0040402c
mov esi, str.type
push esi
lea ecx, [ebp - 0x48]
call fcn.00408623
or dword [ebp + 0x44], 4
lea eax, [ebp + 0x54]
push eax
push dword [ebp + 0x6c]
lea ecx, [ebp + 0x18]
mov byte [ebp - 4], 6
call fcn.00403b17
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp]
push eax
lea ecx, [ebp + 0x54]
call fcn.00405bd8
lea ecx, [ebp + 0x18]
push ecx
mov ecx, eax
call fcn.00402141
test al, al
jne 0x40c0af
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408623
or dword [ebp + 0x44], 8
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x54]
mov dword [ebp - 4], 7
call fcn.0040a673
mov ecx, dword [eax]
call fcn.00411834
test al, al
je 0x40c0af
mov bl, 1
jmp 0x40c0b1
xor bl, bl
test byte [ebp + 0x44], 8
je 0x40c0c7
and dword [ebp + 0x44], 0xfffffff7
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.0040402c
test byte [ebp + 0x44], 4
mov dword [ebp - 4], 1
je 0x40c0e4
and dword [ebp + 0x44], 0xfffffffb
push 0
push 1
lea ecx, [ebp - 0x48]
call fcn.0040402c
test bl, bl
je 0x40c18a
call fcn.00430032
push eax
lea ecx, [ebp + 0x34]
call fcn.00401358
push esi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
call fcn.00408623
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 9
call fcn.0040a673
lea ecx, [ebp - 0x48]
push ecx
mov ecx, dword [eax]
call fcn.00411ca8
cmp dword [eax + 0x18], 8
mov byte [ebp - 4], 0xa
jb 0x40c131
mov eax, dword [eax + 4]
jmp 0x40c134
add eax, 4
push eax
lea ecx, [ebp + 0x34]
call fcn.00404cb8
xor esi, esi
push esi
push 1
lea ecx, [ebp - 0x48]
call fcn.0040402c
push esi
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
call fcn.0040402c
push esi
lea eax, [ebp + 0x34]
push eax
lea ecx, [edi + 0x370]
call fcn.00403d2d
test eax, eax
je 0x40c171
mov byte [ebp + 0x4b], 0
mov ecx, dword [ebp + 0x34]
add ecx, 0xfffffff0
mov byte [ebp - 4], 1
call fcn.004010dc
cmp byte [ebp + 0x4b], 0
je 0x40c2f7
mov eax, dword [edi + 0x394]
test eax, eax
jle 0x40c1ca
xor esi, esi
test eax, eax
jle 0x40c1ca
mov ebx, dword [ebp + 0x30]
lea edi, [ebx + 0x38c]
push dword [ebp + 8]
mov ecx, edi
push esi
call fcn.00402482
mov ecx, eax
call fcn.004028fc
test eax, eax
je 0x40c1c4
inc esi
cmp esi, dword [ebx + 0x394]
jl 0x40c1a3
jmp 0x40c1c8
mov byte [ebp + 0x4b], 0
mov edi, ebx
cmp byte [ebp + 0x4b], 0
je 0x40c2f7
push 0x474b44
lea ecx, [ebp + 8]
call fcn.004028fc
test eax, eax
jne 0x40c2f7
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0xb
call fcn.0040e08f
push 0
push ecx
mov ecx, esp
mov dword [ebp + 4], esp
push str.ApnStub.exe
mov byte [ebp - 4], 0xc
call fcn.0040161d
push ecx
mov ecx, esp
mov dword [ebp + 0x34], esp
push str.http:__cdn.install.oibundles.com_bundles_Ask_ApnStub.exe
mov byte [ebp - 4], 0xd
call fcn.0040161d
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0xc
call fcn.0040e4aa
lea eax, [ebp + 0x34]
push str.TEMPPATH
push eax
call fcn.00406cd7
pop ecx
pop ecx
push str.ApnStub.exe__tbADK
push eax
lea eax, [ebp + 0x14]
push eax
mov byte [ebp - 4], 0xe
call fcn.00405089
add esp, 0xc
mov ecx, dword [ebp + 0x34]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x10
call fcn.004010dc
lea ecx, [ebp + 0x27]
call fcn.004131b7
lea esi, [edi + 0x334]
push esi
push dword [ebp + 0x14]
lea ecx, [ebp + 0x27]
mov byte [ebp - 4], 0x11
call fcn.004131ba
push 0xbb8
push dword [esi]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
or dword [ebp + 0x28], 0xffffffff
lea eax, [ebp + 0x28]
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x40c2a5
cmp dword [ebp + 0x28], 0xffffffff
jne 0x40c2a9
mov byte [ebp + 0x4b], 0
push dword [esi]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [edi + 0x338]
call esi
lea ecx, [ebp + 0x27]
mov byte [ebp - 4], 0x10
call fcn.0040e09f
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffff0
call fcn.004010dc
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0xb
call fcn.0040e098
mov dword [ebp - 4], 1
jmp 0x40c2f7
push str.conflictswith
sub esp, 0x20
lea eax, [ebp + 0x54]
mov dword [ebp + 4], esp
mov ecx, esp
push eax
call fcn.0040a42e
lea eax, [ebp + 0xc]
push eax
mov ecx, edi
call fcn.0040a70f
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x13
call fcn.00404a4c
cmp byte [ebp + 0x4b], 0
je 0x40c45d
push 0x473d5f
lea ecx, [ebp + 0xc]
call fcn.004028da
test eax, eax
je 0x40c5fc
and dword [ebp + 0x20], 0
cmp dword [edi + 0x354], 0
jl 0x40c5fc
mov dword [ebp + 0x34], 0x48ec00
push dword [ebp + 0x34]
lea ecx, [ebp + 0x38]
call fcn.0040393d
push 0x473d5f
lea ecx, [ebp + 0x38]
mov byte [ebp - 4], 0x14
call fcn.004028da
test eax, eax
je 0x40c421
lea ecx, [ebp + 0x38]
call fcn.00404a4c
push ecx
lea eax, [ebp + 0x38]
mov dword [ebp + 4], esp
mov ecx, esp
push eax
call fcn.0040393d
push ecx
lea eax, [ebp + 0xc]
mov dword [ebp + 0x28], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 0x15
call fcn.0040393d
mov ecx, edi
mov byte [ebp - 4], 0x14
call fcn.0040926a
test al, al
jne 0x40c44e
xor esi, esi
cmp dword [edi + 0x364], esi
jle 0x40c417
mov ebx, dword [ebp + 0x30]
lea edi, [ebx + 0x35c]
push esi
mov ecx, edi
call fcn.00402482
push ecx
mov dword [ebp + 4], esp
mov ecx, esp
push eax
call fcn.0040393d
push ecx
lea eax, [ebp + 0xc]
mov dword [ebp + 0x28], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 0x16
call fcn.0040393d
mov ecx, ebx
mov byte [ebp - 4], 0x14
call fcn.0040926a
test al, al
jne 0x40c410
inc esi
cmp esi, dword [ebx + 0x364]
jl 0x40c3cf
jmp 0x40c414
mov byte [ebp + 0x4b], 0
mov edi, dword [ebp + 0x30]
cmp byte [ebp + 0x4b], 0
je 0x40c5ed
mov ecx, dword [ebp + 0x38]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x13
call fcn.004010dc
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x20]
add dword [ebp + 0x34], 0x858
cmp eax, dword [edi + 0x354]
jle 0x40c35b
jmp 0x40c5fc
mov ecx, dword [ebp + 0x38]
add ecx, 0xfffffff0
mov byte [ebp + 0x4b], 0
call fcn.004010dc
xor bl, bl
mov esi, str.criteria
test byte [ebp + 0x44], 0x20
je 0x40c47a
and dword [ebp + 0x44], 0xffffffdf
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.0040402c
test byte [ebp + 0x44], 0x10
mov dword [ebp - 4], 0x13
je 0x40c497
and dword [ebp + 0x44], 0xffffffef
push 0
push 1
lea ecx, [ebp - 0x48]
call fcn.0040402c
test bl, bl
je 0x40c745
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408623
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 0x19
call fcn.0040a673
lea ecx, [ebp - 0x44]
push ecx
mov ecx, dword [eax]
call fcn.0041205b
xor esi, esi
push esi
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1b
call fcn.0040402c
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x38]
sar eax, 2
test eax, eax
jbe 0x40c730
mov ebx, reloc.OLEAUT32.dll_SysReAllocString
lea edi, [ebx - 1]
push esi
lea ecx, [ebp - 0x44]
call fcn.004020ab
lea ecx, [ebp - 0x68]
push ecx
mov ecx, dword [eax]
call fcn.004121e0
push str.type
sub esp, 0x20
lea eax, [ebp - 0x68]
mov dword [ebp + 0x1c], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 0x1c
call fcn.0040a42e
mov ecx, dword [ebp + 0x30]
lea eax, [ebp + 0x3c]
push eax
call fcn.0040a70f
push 0x4748e4
sub esp, 0x20
lea eax, [ebp - 0x68]
mov dword [ebp + 0x1c], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 0x1d
call fcn.0040a42e
mov ecx, dword [ebp + 0x30]
lea eax, [ebp + 0x40]
push eax
call fcn.0040a70f
push 0x474b48
sub esp, 0x20
lea eax, [ebp - 0x68]
mov dword [ebp + 0x1c], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 0x1e
call fcn.0040a42e
mov ecx, dword [ebp + 0x30]
lea eax, [ebp + 0x38]
push eax
call fcn.0040a70f
push str.data
sub esp, 0x20
lea eax, [ebp - 0x68]
mov dword [ebp + 0x1c], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 0x1f
call fcn.0040a42e
mov ecx, dword [ebp + 0x30]
lea eax, [ebp + 4]
push eax
call fcn.0040a70f
mov ecx, eax
mov byte [ebp - 4], 0x20
call fcn.00404a4c
push eax
lea ecx, [ebp + 0x2c]
call fcn.0040393d
mov ecx, dword [ebp + 4]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x22
call fcn.004010dc
push str.registry
lea ecx, [ebp + 0x3c]
call fcn.004028fc
test eax, eax
je 0x40c5e2
push str.registry_localmachine
lea ecx, [ebp + 0x3c]
call fcn.004028fc
test eax, eax
jne 0x40c684
push 0
push dword [ebp + 0x40]
push ebx
jmp 0x40c82f
mov ecx, dword [ebp + 0x38]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x13
call fcn.004010dc
cmp byte [ebp + 0x4b], 0
je 0x40c45d
mov esi, str.criteria
push esi
lea ecx, [ebp - 0x48]
call fcn.00408623
or dword [ebp + 0x44], 0x10
lea eax, [ebp + 0x54]
push eax
push dword [ebp + 0x6c]
lea ecx, [ebp + 0x18]
mov byte [ebp - 4], 0x17
call fcn.00403b17
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp]
push eax
lea ecx, [ebp + 0x54]
call fcn.00405bd8
lea ecx, [ebp + 0x18]
push ecx
mov ecx, eax
call fcn.00402141
test al, al
jne 0x40c45d
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408623
or dword [ebp + 0x44], 0x20
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x54]
mov dword [ebp - 4], 0x18
call fcn.0040a673
mov ecx, dword [eax]
call fcn.00411846
test al, al
je 0x40c45d
mov bl, 1
jmp 0x40c464
push str.registry_currentuser
lea ecx, [ebp + 0x3c]
call fcn.004028fc
test eax, eax
jne 0x40c69f
push eax
push dword [ebp + 0x40]
push edi
jmp 0x40c82f
push str.registry_currentuser_key
lea ecx, [ebp + 0x3c]
call fcn.004028fc
test eax, eax
jne 0x40c7d0
push dword [ebp + 0x38]
lea eax, [ebp + 0x20]
push dword [ebp + 0x40]
push edi
push eax
call fcn.004059a8
add esp, 0x10
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0x23
call fcn.00404a4c
push 0
push dword [ebp + 0x2c]
lea ecx, [ebp + 0x20]
call fcn.004034e0
mov ecx, dword [ebp + 0x20]
add ecx, 0xfffffff0
cmp eax, 0xffffffff
jle 0x40c921
mov byte [ebp + 0x4b], 0
call fcn.004010dc
mov ecx, dword [ebp + 0x2c]
add ecx, 0xfffffff0
call fcn.004010dc
mov ecx, dword [ebp + 0x38]
add ecx, 0xfffffff0
call fcn.004010dc
mov ecx, dword [ebp + 0x40]
add ecx, 0xfffffff0
call fcn.004010dc
mov ecx, dword [ebp + 0x3c]
add ecx, 0xfffffff0
call fcn.004010dc
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x1b
call fcn.00409ef6
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x13
call fcn.00404077
push dword [ebp - 0x44]
call fcn.0042c094
pop ecx
cmp byte [ebp + 0x4b], 0
mov esi, str.offer_visibility_threshold
je 0x40c975
push esi
lea ecx, [ebp - 0x48]
call fcn.00408623
or dword [ebp + 0x44], 0x40
lea eax, [ebp + 0x54]
push eax
push dword [ebp + 0x6c]
lea ecx, [ebp + 0x18]
mov byte [ebp - 4], 0x28
call fcn.00403b17
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp]
push eax
lea ecx, [ebp + 0x54]
call fcn.00405bd8
lea ecx, [ebp + 0x18]
push ecx
mov ecx, eax
call fcn.00402141
test al, al
jne 0x40c975
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408623
or dword [ebp + 0x44], 0x80
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x54]
mov dword [ebp - 4], 0x29
call fcn.0040a673
mov ecx, dword [eax]
call fcn.0041183d
test al, al
je 0x40c975
mov bl, 1
jmp 0x40c977
push str.registry_localmachine_key
lea ecx, [ebp + 0x3c]
call fcn.004028fc
test eax, eax
jne 0x40c815
push dword [ebp + 0x38]
lea eax, [ebp + 0x34]
push dword [ebp + 0x40]
push ebx
push eax
call fcn.004059a8
add esp, 0x10
lea ecx, [ebp + 0x34]
mov byte [ebp - 4], 0x24
call fcn.00404a4c
push 0
push dword [ebp + 0x2c]
lea ecx, [ebp + 0x34]
call fcn.004034e0
mov ecx, dword [ebp + 0x34]
jmp 0x40c6e3
push str.registry_classesroot
lea ecx, [ebp + 0x3c]
call fcn.004028fc
test eax, eax
jne 0x40c849
push eax
push dword [ebp + 0x40]
push SysReAllocStringLen
call fcn.00401b41
add esp, 0xc
cmp eax, 1
jne 0x40c926
mov byte [ebp + 0x4b], 0
jmp 0x40c6f8
push str.directory
lea ecx, [ebp + 0x3c]
call fcn.004028fc
test eax, eax
jne 0x40c884
mov ecx, dword [ebp + 0x30]
lea eax, [ebp + 0x40]
push eax
call fcn.004079ce
push ecx
lea eax, [ebp + 0x40]
mov dword [ebp + 0x1c], esp
mov ecx, esp
push eax
call fcn.0040393d
call fcn.0040584b
pop ecx
test al, al
jne 0x40c840
jmp 0x40c926
push str.country
lea ecx, [ebp + 0x3c]
call fcn.004028fc
test eax, eax
jne 0x40c8b7
lea eax, [ebp + 0x10]
push 0x95
push eax
call fcn.004070b7
pop ecx
pop ecx
push 0
push dword [ebp + 0x10]
lea ecx, [ebp + 0x40]
call fcn.004034e0
mov ecx, dword [ebp + 0x10]
jmp 0x40c915
push str.browser
lea ecx, [ebp + 0x3c]
call fcn.004028fc
test eax, eax
jne 0x40c8ea
lea eax, [ebp + 0x14]
push 0x96
push eax
call fcn.004070b7
pop ecx
pop ecx
push 0
push dword [ebp + 0x14]
lea ecx, [ebp + 0x40]
call fcn.004034e0
mov ecx, dword [ebp + 0x14]
jmp 0x40c915
push str.net_version
lea ecx, [ebp + 0x3c]
call fcn.004028fc
test eax, eax
jne 0x40c926
lea eax, [ebp + 0x28]
push eax
call fcn.00406e05
pop ecx
push 0
push dword [ebp + 0x28]
lea ecx, [ebp + 0x40]
call fcn.004034e0
mov ecx, dword [ebp + 0x28]
add ecx, 0xfffffff0
cmp eax, 0xffffffff
jle 0x40c6ef
call fcn.004010dc
mov ecx, dword [ebp + 0x2c]
add ecx, 0xfffffff0
call fcn.004010dc
mov ecx, dword [ebp + 0x38]
add ecx, 0xfffffff0
call fcn.004010dc
mov ecx, dword [ebp + 0x40]
add ecx, 0xfffffff0
call fcn.004010dc
mov ecx, dword [ebp + 0x3c]
add ecx, 0xfffffff0
call fcn.004010dc
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x1b
call fcn.00409ef6
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x38]
inc esi
sar eax, 2
cmp esi, eax
jb 0x40c4ed
jmp 0x40c730
xor bl, bl
xor edi, edi
test byte [ebp + 0x44], 0x80
je 0x40c991
and dword [ebp + 0x44], 0xffffff7f
push edi
push 1
lea ecx, [ebp - 0x2c]
call fcn.0040402c
test byte [ebp + 0x44], 0x40
mov dword [ebp - 4], 0x13
je 0x40c9ad
and dword [ebp + 0x44], 0xffffffbf
push edi
push 1
lea ecx, [ebp - 0x48]
call fcn.0040402c
test bl, bl
je 0x40c9f0
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408623
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 0x2a
call fcn.0040a673
mov ecx, dword [eax]
call fcn.00411858
call fcn.004507c0
push edi
push 1
lea ecx, [ebp - 0x2c]
mov esi, eax
mov byte [ebp - 4], 0x13
call fcn.0040402c
cmp dword [ebp - 0x6c], esi
jle 0x40c9f0
mov byte [ebp + 0x4b], 0
cmp byte [ebp + 0x4b], 0
je 0x40caa6
mov ebx, dword [ebp + 0x30]
cmp dword [ebx + 0x3ac], edi
jle 0x40ca25
push edi
lea eax, [ebp + 8]
push eax
lea ecx, [ebx + 0x3a0]
call fcn.00403d2d
test eax, eax
jne 0x40cc00
mov byte [ebp + 0x4b], al
jmp 0x40cc00
mov esi, str.whitelist
push esi
lea ecx, [ebp - 0x48]
call fcn.00408623
or dword [ebp + 0x44], 0x100
lea eax, [ebp + 0x54]
push eax
push dword [ebp + 0x6c]
lea ecx, [ebp + 0x18]
mov byte [ebp - 4], 0x2b
call fcn.00403b17
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp + 0x54]
call fcn.00405bd8
lea ecx, [ebp + 0x18]
push ecx
mov ecx, eax
call fcn.00402141
test al, al
jne 0x40caab
push esi
lea ecx, [ebp - 0x2c]
call fcn.00408623
or dword [ebp + 0x44], 0x200
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x54]
mov dword [ebp - 4], 0x2c
call fcn.0040a673
mov ecx, dword [eax]
call fcn.00411834
test al, al
je 0x40caab
cmp dword [ebx + 0x3ac], edi
jne 0x40caab
mov bl, 1
jmp 0x40caad
mov esi, str.whitelist
xor bl, bl
xor edi, edi
test dword [ebp + 0x44], 0x200
je 0x40caca
and dword [ebp + 0x44], 0xfffffdff
push edi
push 1
lea ecx, [ebp - 0x2c]
call fcn.0040402c
test dword [ebp + 0x44], 0x100
mov dword [ebp - 4], 0x13
je 0x40cae5
push edi
push 1
lea ecx, [ebp - 0x48]
call fcn.0040402c
test bl, bl
je 0x40cc00
call fcn.00430032
push eax
lea ecx, [ebp + 0x34]
call fcn.00401358
push esi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x2d
call fcn.00408623
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 0x2e
call fcn.0040a673
lea ecx, [ebp - 0x48]
push ecx
mov ecx, dword [eax]
call fcn.00411ca8
cmp dword [eax + 0x18], 8
mov byte [ebp - 4], 0x2f
jb 0x40cb32
mov eax, dword [eax + 4]
jmp 0x40cb35
add eax, 4
push eax
lea ecx, [ebp + 0x34]
call fcn.00404cb8
push edi
push 1
lea ecx, [ebp - 0x48]
call fcn.0040402c
push edi
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x2d
call fcn.0040402c
mov eax, dword [ebp + 0x34]
cmp dword [eax - 0xc], edi
je 0x40cbf5
push ecx
lea eax, [ebp + 0x34]
mov dword [ebp + 0x1c], esp
mov ecx, esp
push eax
call fcn.0040393d
mov esi, dword [ebp + 0x30]
mov ecx, esi
call fcn.0040935f
mov eax, dword [esi + 0x394]
cmp eax, edi
jle 0x40cbf5
xor esi, esi
cmp eax, edi
jle 0x40cbf5
mov edi, dword [ebp + 0x30]
lea ebx, [edi + 0x38c]
add edi, 0x3a0
push esi
mov ecx, ebx
call fcn.00402482
push eax
lea ecx, [ebp + 0x28]
call fcn.0040393d
push 0
lea eax, [ebp + 0x28]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x30
call fcn.00403d2d
test eax, eax
je 0x40cbdf
mov ecx, dword [ebp + 0x28]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x2d
call fcn.004010dc
mov eax, dword [ebp + 0x30]
inc esi
cmp esi, dword [eax + 0x394]
jl 0x40cb9c
jmp 0x40cbf5
mov ecx, edi
call fcn.004044fd
mov ecx, dword [ebp + 0x28]
add ecx, 0xfffffff0
mov byte [ebp + 0x4b], 0
call fcn.004010dc
mov ecx, dword [ebp + 0x34]
add ecx, 0xfffffff0
call fcn.004010dc
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.004010dc
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.004010dc
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x54]
call fcn.00409ef6
mov al, byte [ebp + 0x4b]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add ebp, 0x4c
leave
ret 0x20