Function at 0x404c90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x416ea6
mov eax, dword fs:[0]
push eax
sub esp, 0x860
mov eax, dword [0x42ac1c]
xor eax, esp
mov dword [esp + 0x85c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x42ac1c]
xor eax, esp
push eax
lea eax, [esp + 0x874]
mov dword fs:[0], eax
mov eax, dword [esp + 0x884]
mov ecx, dword [esp + 0x88c]
mov edx, dword [esp + 0x898]
mov esi, dword [esp + 0x888]
mov ebp, dword [esp + 0x89c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x8a0]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x8a8]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x8ac]
mov edi, 0x80
xor ebx, ebx
push edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x50], edx
mov byte [esp + 0x1b], bl
call fcn.0040b0d3
mov dword [esp + 0x2c], eax
mov byte [eax + 1], bl
mov eax, dword [esp + 0x2c]
mov byte [eax], bl
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ebx
push edi
mov dword [esp + 0x884], ebx
call fcn.0040b0d3
add esp, 8
mov dword [esp + 0x34], eax
mov byte [eax + 1], bl
mov byte [eax], bl
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebx
xor eax, eax
mov dword [esp + 0x51], eax
mov dword [esp + 0x55], eax
mov dword [esp + 0x59], eax
mov dword [esp + 0x5d], eax
mov dword [esp + 0x61], eax
mov dword [esp + 0x65], eax
mov eax, dword [esp + 0x24]
cmp eax, ebx
mov byte [esp + 0x87c], 1
mov byte [esp + 0x50], bl
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x48], ebx
je 0x404d9a
mov byte [eax], bl
call dword [0x42abfc]
mov edi, dword [esp + 0x18]
push 0x26
push 0x3d
lea ecx, [esp + 0x24]
push ecx
push 0x418ca4
push edi
call fcn.004095a0
mov eax, dword [esp + 0x30]
add esp, 0x14
cmp eax, ebx
je 0x40513c
cmp esi, ebx
je 0x40513c
push eax
push esi
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
lea edx, [esp + 0x74]
push str._s_s.ntr
push edx
call esi
add esp, 0x10
cmp dword [esp + 0x894], ebx
push 1
je 0x404dfe
lea eax, [esp + 0x54]
push eax
push ebx
lea ecx, [esp + 0x78]
push ecx
jmp 0x404e09
lea edx, [esp + 0x54]
push edx
push ebx
lea eax, [esp + 0x78]
push eax
call fcn.00408f70
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [esp + 0x890], bl
push eax
je 0x404e36
lea ecx, [esp + 0x54]
push ecx
push edi
push str._sv_sh1f1_lu
lea edx, [esp + 0x280]
push edx
jmp 0x404e49
lea eax, [esp + 0x54]
push eax
push edi
push str._sv_sh1f0_lu
lea ecx, [esp + 0x280]
push ecx
call esi
add esp, 0x14
cmp ebp, ebx
mov word [esp + 0x470], bx
je 0x404ea9
mov esi, dword [esp + 0x20]
cmp esi, ebx
je 0x404ea9
mov eax, ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x404e67
sub eax, edx
sar eax, 1
je 0x404ea9
mov eax, esi
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x404e80
sub eax, edx
sar eax, 1
je 0x404ea9
push esi
push ebp
lea edx, [esp + 0x478]
push str._s:_s
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [esp + 0x470]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x404eb3
mov ecx, dword [esp + 0x4c]
push ecx
sub eax, edx
mov edx, dword [esp + 0x8a8]
push edx
sar eax, 1
xor ecx, ecx
cmp ecx, eax
mov ecx, dword [esp + 0x4c]
sbb edx, edx
lea eax, [esp + 0x478]
and edx, eax
push edx
mov edx, dword [esp + 0x4c]
push ebx
push ecx
push edx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x28c]
push ecx
call fcn.00408ed0
add esp, 0x20
test al, al
je 0x40513c
cmp dword [esp + 0x30], ebx
je 0x40513c
mov edx, dword [esp + 0x28]
push 0x21
push edx
lea eax, [esp + 0x178]
push eax
call fcn.0040ac70
lea ecx, [esp + 0x17c]
push ecx
push str._DwModule__Result:__s
mov byte [esp + 0x1a5], bl
call fcn.00409f90
mov ebp, dword [esp + 0x3c]
add esp, 0x14
mov eax, 6
mov ecx, str._html_
mov edx, ebp
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x404f69
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x404f51
cmp eax, ebx
je 0x404fce
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x404fb8
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebx
je 0x404fca
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x404fb8
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebx
je 0x404fca
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x404fb8
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebx
je 0x404fca
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x404fca
cmp esi, ebx
mov edi, dword [esp + 0x18]
mov eax, 1
jg 0x404fd0
or eax, 0xffffffff
jmp 0x404fd0
mov edi, dword [esp + 0x18]
xor eax, eax
cmp eax, ebx
mov esi, 6
je 0x404fdd
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
lea eax, [esi + 2]
cmp edx, eax
ja 0x40501a
movsx eax, byte [esi + ebp]
sub eax, 0x30
push edi
je 0x405010
sub eax, 1
je 0x405001
push str.DownloadModule___s___wrong_protocol
jmp 0x405134
mov byte [esp + 0x1b], 1
push str.DownloadModule___s___done
jmp 0x405134
push str.DownloadModule___s___not_found
jmp 0x405134
cmp byte [esp + 0x890], bl
je 0x4050af
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x2c]
push esi
push edx
call fcn.00404990
add esp, 0xc
test al, al
je 0x4050a4
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
push eax
push ecx
lea edx, [esp + 0x74]
push edx
call fcn.00404c30
add esp, 0xc
test al, al
je 0x405099
cmp dword [esp + 0x894], ebx
je 0x40507e
lea eax, [esp + 0x6c]
push eax
call fcn.00409160
add esp, 4
test al, al
jne 0x40507e
push edi
push str.DownloadModule___s__html__corrupted_data
jmp 0x405134
mov eax, dword [esp + 0x24]
cmp eax, ebx
mov byte [esp + 0x17], 1
je 0x40508e
mov byte [eax], 1
push edi
push str.DownloadModule___s__html__done
jmp 0x405134
push edi
push str.DownloadModule___s__html__write_error
jmp 0x405134
push edi
push str.DownloadModule___s__html__wrong_format
jmp 0x405134
movzx eax, byte [ebp]
sub eax, 0x4d
jne 0x4050c1
movzx eax, byte [ebp + 1]
sub eax, 0x5a
je 0x4050cf
cmp eax, ebx
mov ecx, 1
jg 0x4050d1
or ecx, 0xffffffff
jmp 0x4050d1
xor ecx, ecx
cmp ecx, ebx
jne 0x40512e
sub edx, esi
push edx
add ebp, esi
lea ecx, [esp + 0x70]
push ebp
push ecx
call fcn.00404c30
add esp, 0xc
test al, al
je 0x405126
cmp dword [esp + 0x894], ebx
je 0x40510e
lea edx, [esp + 0x6c]
push edx
call fcn.00409160
add esp, 4
test al, al
jne 0x40510e
push edi
push str.DownloadModule___s__binary__corrupted_data
jmp 0x405134
mov eax, dword [esp + 0x24]
cmp eax, ebx
mov byte [esp + 0x17], 1
je 0x40511e
mov byte [eax], 1
push edi
push str.DownloadModule___s__binary__done
jmp 0x405134
push edi
push str.DownloadModule___s__binary__write_error
jmp 0x405134
push edi
push str.DownloadModule___s__binary__incorrect_data
call fcn.00409f90
add esp, 8
lea eax, [esp + 0x1c]
push eax
call fcn.004099d0
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0040aff6
mov edx, dword [esp + 0x30]
push edx
call fcn.0040aff6
mov al, byte [esp + 0x23]
add esp, 0xc
mov ecx, dword [esp + 0x874]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x85c]
xor ecx, esp
call fcn.0040a1eb
add esp, 0x86c
ret