Function at 0x401b80
Capabilities:
Download url
Receive data
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x42933f
mov eax, dword fs:[0]
push eax
sub esp, 0x42c
mov eax, dword [0x4362ac]
xor eax, esp
mov dword [esp + 0x428], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4362ac]
xor eax, esp
push eax
lea eax, [esp + 0x440]
mov dword fs:[0], eax
push 0x1ff
lea eax, [esp + 0x241]
mov edi, ecx
push 0
push eax
mov dword [esp + 0x24], edi
mov esi, edx
mov byte [esp + 0x248], 0
call fcn.0041a930
mov cx, word [0x42c5c4]
mov dl, byte [0x42c5c6]
add esp, 0xc
lea ebx, [esp + 0x1c]
mov eax, esi
mov word [esp + 0x1c], cx
mov byte [esp + 0x1e], dl
call fcn.00405270
mov esi, eax
xor ebp, ebp
cmp esi, ebp
je 0x401d8d
mov ebx, dword [sym.imp.USER32.dll_CharNextA]
jmp 0x401c20
lea eax, [esp + 0x23c]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401c30
sub eax, edx
push eax
lea eax, [esp + 0x240]
push ebp
push eax
call fcn.0041a930
lea edx, [esp + 0x248]
add esp, 0xc
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x401c56
lea ecx, [esp + 0x23c]
push 0x42c5c8
push ecx
call fcn.00416e0f
mov edi, eax
push str.client
push edi
call fcn.00416fd4
add esp, 0x10
test eax, eax
jne 0x401ced
push 0x42c5d4
push ebp
call fcn.00416e0f
add esp, 8
cmp eax, ebp
je 0x401cbb
mov ecx, eax
lea edi, [ecx + 1]
lea ecx, [ecx]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x401ca0
mov ebp, dword [esp + 0x18]
push eax
lea edx, [ebp + 0x34]
sub ecx, edi
push edx
mov edx, ecx
call fcn.004042c0
jmp 0x401cbf
mov ebp, dword [esp + 0x18]
mov eax, dword [ebp + 0x34]
cmp dword [eax - 0xc], 0
je 0x402293
lea eax, [ebp + 0x3c]
push str.BCCLIENT
mov edi, 8
mov dword [ebp + 0x30], 2
call fcn.00404740
mov byte [ebp + 0x2c], 1
xor ebp, ebp
jmp 0x401d50
push str.server
push edi
call fcn.00416fd4
add esp, 8
test eax, eax
jne 0x401d50
push 0x42c5ec
push ebp
call fcn.00416e0f
add esp, 8
cmp eax, ebp
je 0x401d2d
push str.restart
push eax
call fcn.00416fd4
add esp, 8
test eax, eax
jne 0x401d2d
mov eax, dword [esp + 0x18]
mov byte [eax + 0x2c], 1
jmp 0x401d31
mov eax, dword [esp + 0x18]
mov dword [eax + 0x30], 1
add eax, 0x3c
push str.BCSERVER
mov edi, 8
call fcn.00404740
lea ebx, [ebx]
cmp byte [esi], 0
je 0x401d89
lea eax, [esp + 0x1c]
lea esp, [esp]
mov cl, byte [eax]
test cl, cl
je 0x401d71
cmp byte [esi], cl
je 0x401d7c
push eax
call ebx
cmp eax, ebp
jne 0x401d60
push esi
call ebx
mov esi, eax
cmp esi, ebp
jne 0x401d50
jmp 0x401d89
push esi
call ebx
mov esi, eax
cmp esi, ebp
jne 0x401c20
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x30]
cmp eax, ebp
je 0x402293
mov ebx, 0xf
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xc4], ebp
mov byte [esp + 0xb4], 0
mov dword [esp + 0x448], ebp
mov edx, str.SOFTWAREBCServer
cmp eax, 1
je 0x401dc9
mov edx, str.SOFTWAREBCClient
mov eax, edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], ebp
mov byte [esp + 0x44], 0
lea esi, [eax + 1]
jmp 0x401de0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401de0
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x48]
call fcn.00405320
mov eax, dword [esp + 0x44]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov ebp, 0x10
cmp dword [esp + 0x58], ebp
jae 0x401e13
lea eax, [esp + 0x44]
lea ecx, [esp + 0x24]
push ecx
push 0x20019
xor esi, esi
push esi
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov byte [esp + 0x448], 1
cmp dword [esp + 0x58], ebp
jb 0x401e47
mov edx, dword [esp + 0x44]
push edx
call fcn.00416928
add esp, 4
mov eax, str.MapFile
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], esi
mov byte [esp + 0x44], 0
mov dword [esp + 0xac], ebx
mov dword [esp + 0xa8], esi
mov byte [esp + 0x98], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401e72
sub eax, edx
push eax
push str.MapFile
lea ecx, [esp + 0x9c]
call fcn.00405320
lea eax, [esp + 0x24]
push eax
lea ebx, [esp + 0xb4]
lea ecx, [esp + 0x98]
mov byte [esp + 0x44c], 2
call fcn.004010c0
mov byte [esp + 0x448], 1
cmp dword [esp + 0xac], ebp
jb 0x401ece
mov ecx, dword [esp + 0x98]
push ecx
call fcn.00416928
add esp, 4
push 6
push str.bclang
lea edx, [esp + 0xb8]
push edx
xor eax, eax
call fcn.00404190
cmp eax, 0xffffffff
je 0x402263
push eax
xor ecx, ecx
lea esi, [esp + 0x98]
lea edx, [esp + 0xb4]
call fcn.00403cc0
mov byte [esp + 0x448], 3
cmp dword [eax + 0x18], ebp
jb 0x401f15
mov eax, dword [eax + 4]
jmp 0x401f18
add eax, 4
lea ebx, [edi + 0x40]
mov edx, eax
call fcn.00403d10
mov byte [esp + 0x448], 1
cmp dword [esp + 0xac], ebp
jb 0x401f43
mov eax, dword [esp + 0x98]
push eax
call fcn.00416928
add esp, 4
push str.PatchVer
lea ecx, [esp + 0x98]
call fcn.004052e0
lea ecx, [esp + 0x24]
push ecx
lea ebx, [esp + 0xb4]
lea ecx, [esp + 0x98]
mov byte [esp + 0x44c], 4
call fcn.004010c0
mov byte [esp + 0x448], 1
cmp dword [esp + 0xac], ebp
jb 0x401f95
mov edx, dword [esp + 0x98]
push edx
call fcn.00416928
add esp, 4
lea eax, [esp + 0xb0]
push eax
lea esi, [esp + 0x98]
call fcn.00401180
add esp, 4
mov byte [esp + 0x448], 5
cmp dword [eax + 0x18], ebp
jb 0x401fbe
mov edx, dword [eax + 4]
jmp 0x401fc1
lea edx, [eax + 4]
lea ebx, [edi + 0x44]
call fcn.00403d10
mov byte [esp + 0x448], 1
cmp dword [esp + 0xac], ebp
jb 0x401fea
mov ecx, dword [esp + 0x98]
push ecx
call fcn.00416928
add esp, 4
cmp dword [edi + 0x30], 1
jne 0x402206
xor eax, eax
mov dword [esp + 0xac], 0xf
mov dword [esp + 0xa8], eax
mov byte [esp + 0x98], al
push str.PatchURL
lea ecx, [esp + 0x60]
mov byte [esp + 0x44c], 6
call fcn.004052e0
lea edx, [esp + 0x24]
push edx
lea ebx, [esp + 0x98]
lea ecx, [esp + 0x60]
mov byte [esp + 0x44c], 7
call fcn.004010c0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x448], 6
call fcn.00405400
lea eax, [esp + 0xb0]
push eax
mov ecx, str._verid
lea edi, [esp + 0x7c]
call fcn.00404840
add esp, 4
push eax
mov edi, str.check1
lea esi, [esp + 0x60]
mov byte [esp + 0x44c], 8
call fcn.004048f0
add esp, 4
xor ebx, ebx
push ebx
push eax
or eax, 0xffffffff
lea esi, [esp + 0x9c]
mov byte [esp + 0x450], 9
call fcn.00404540
lea ecx, [esp + 0x5c]
call fcn.00405400
lea ecx, [esp + 0x78]
call fcn.00405400
mov dword [esp + 0x20], ebx
mov byte [esp + 0x448], 0xa
mov eax, dword [esp + 0x98]
cmp dword [esp + 0xac], ebp
jae 0x4020d6
lea eax, [esp + 0x98]
push ebx
push ebx
lea ecx, [esp + 0x28]
push ecx
push eax
push ebx
call sub.urlmon.dll_URLOpenBlockingStreamA
test eax, eax
jl 0x4021d4
push 0x103
lea edx, [esp + 0x139]
push ebx
push edx
mov dword [esp + 0x48], ebx
mov byte [esp + 0x140], bl
call fcn.0041a930
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
add esp, 0xc
lea edx, [esp + 0x3c]
push edx
push 0x104
lea edx, [esp + 0x13c]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
jl 0x4021d4
push 0x63
lea ecx, [esp + 0xd1]
push ebx
push ecx
mov byte [esp + 0xd8], bl
call fcn.0041a930
mov edi, dword [esp + 0x24]
add esp, 0xc
lea edx, [esp + 0x38]
push edx
lea eax, [edi + 0x38]
push eax
lea ecx, [esp + 0xd4]
push ecx
lea edx, [esp + 0x140]
push str._s__d__d
push edx
mov dword [esp + 0x4c], ebx
call fcn.00416dcc
add esp, 0x14
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x60]
call fcn.004052e0
push eax
lea esi, [esp + 0x7c]
mov byte [esp + 0x44c], 0xb
call fcn.00401180
add esp, 4
mov byte [esp + 0x448], 0xc
cmp dword [eax + 0x18], ebp
jb 0x4021b3
mov eax, dword [eax + 4]
jmp 0x4021b6
add eax, 4
lea ebx, [edi + 0x48]
mov edx, eax
call fcn.00403d10
lea ecx, [esp + 0x78]
call fcn.00405400
lea ecx, [esp + 0x5c]
call fcn.00405400
xor ebx, ebx
mov byte [esp + 0x448], 6
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x4021ec
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [esp + 0x94]
mov byte [esp + 0x448], 1
call fcn.00405400
mov edi, dword [esp + 0x18]
jmp 0x402208
xor ebx, ebx
mov eax, 0x402a00
mov edx, eax
sub esp, 0x10
mov eax, esp
xor ecx, ecx
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 8], edi
lea esi, [edi + 0x50]
mov dword [eax + 0xc], ecx
call fcn.004049a0
mov eax, dword [esp + 0x24]
mov dword [edi + 0x90], ebx
cmp eax, ebx
je 0x402246
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x24], ebx
cmp dword [esp + 0xc8], ebp
jb 0x40225f
mov edx, dword [esp + 0xb4]
push edx
call fcn.00416928
add esp, 4
mov al, 1
jmp 0x402295
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40227a
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x24], 0
cmp dword [esp + 0xc8], ebp
jb 0x402293
mov eax, dword [esp + 0xb4]
push eax
call fcn.00416928
add esp, 4
xor al, al
mov ecx, dword [esp + 0x440]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x428]
xor ecx, esp
call fcn.00416933
add esp, 0x438
ret