Function at 0x403350
Capabilities:
Hash data using djb2
Parse pe header
Reference http user-agent string
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42487b
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xb08
mov eax, dword [0x430040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xb00], edx
mov dword [ebp - 0xa1c], ecx
xorps xmm0, xmm0
mov dword [ebp - 0xa78], 0
xor eax, eax
mov dword [ebp - 0xa20], 0
movups xmmword [ebp - 0xa50], xmm0
mov dword [ebp - 0xa40], 0
mov dword [ebp - 0xa3c], 7
mov word [ebp - 0xa50], ax
mov dword [ebp - 4], eax
movups xmmword [ebp - 0xa38], xmm0
mov dword [ebp - 0xa28], eax
mov dword [ebp - 0xa24], 7
mov word [ebp - 0xa38], ax
mov byte [ebp - 4], 1
mov edi, 0x1505
mov ecx, 0x42c9d9
mov edx, 0x4c
nop dword [eax]
mov eax, edi
lea ecx, [ecx + 1]
shl edi, 5
add edi, edx
movsx edx, byte [ecx - 1]
add edi, eax
test edx, edx
jne 0x403410
mov dword [ebp - 0xac0], edi
mov esi, 0x1505
mov ecx, 0x42c9e9
mov edx, 0x47
nop dword [eax]
mov eax, esi
lea ecx, [ecx + 1]
shl esi, 5
add esi, edx
movsx edx, byte [ecx - 1]
add esi, eax
test edx, edx
jne 0x403440
mov dword [ebp - 0xabc], esi
mov ecx, 0x1505
mov edx, 0x42c9fd
mov esi, 0x47
nop dword [eax]
mov eax, ecx
lea edx, [edx + 1]
shl ecx, 5
add ecx, esi
movsx esi, byte [edx - 1]
add ecx, eax
test esi, esi
jne 0x403470
mov dword [ebp - 0xae0], ecx
mov edx, 0x42ca0d
mov ecx, 0x1505
mov edi, 0x46
nop dword [eax]
mov eax, ecx
lea edx, [edx + 1]
shl ecx, 5
add ecx, edi
movsx edi, byte [edx - 1]
add ecx, eax
test edi, edi
jne 0x4034a0
mov dword [ebp - 0xaf8], ecx
mov edx, 0x42cb21
mov ecx, 0x1505
mov esi, 0x43
nop dword [eax]
mov eax, ecx
lea edx, [edx + 1]
shl ecx, 5
add ecx, esi
movsx esi, byte [edx - 1]
add ecx, eax
test esi, esi
jne 0x4034d0
mov dword [ebp - 0xaf4], ecx
mov edx, 0x42cb2d
mov ecx, 0x1505
mov edi, 0x57
nop dword [eax]
mov eax, ecx
lea edx, [edx + 1]
shl ecx, 5
add ecx, edi
movsx edi, byte [edx - 1]
add ecx, eax
test edi, edi
jne 0x403500
mov dword [ebp - 0xac4], ecx
mov edx, 0x42cb39
mov ecx, 0x1505
mov esi, 0x43
nop dword [eax]
mov eax, ecx
lea edx, [edx + 1]
shl ecx, 5
add ecx, esi
movsx esi, byte [edx - 1]
add ecx, eax
test esi, esi
jne 0x403530
mov dword [ebp - 0xac8], ecx
lea edi, [esi + 0x47]
mov esi, dword [ebp - 0xabc]
mov ecx, 0x1505
mov edx, 0x42cb45
nop dword [eax]
mov eax, ecx
lea edx, [edx + 1]
shl ecx, 5
add ecx, edi
movsx edi, byte [edx - 1]
add ecx, eax
test edi, edi
jne 0x403560
push str.kernel32.dll
mov dword [ebp - 0xae4], ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, dword [ebp - 0xac0]
test eax, eax
je 0x404193
mov edx, edi
mov edi, eax
mov ecx, edi
call fcn.00402490
mov edx, dword [ebp - 0xaf8]
mov ecx, edi
mov dword [ebp - 0xabc], eax
call fcn.00402490
mov edx, dword [ebp - 0xaf4]
mov ecx, edi
mov dword [ebp - 0xadc], eax
call fcn.00402490
mov edx, dword [ebp - 0xac4]
mov ecx, edi
mov dword [ebp - 0xae8], eax
call fcn.00402490
mov edx, dword [ebp - 0xac8]
mov ecx, edi
mov dword [ebp - 0xaf4], eax
call fcn.00402490
mov edx, dword [ebp - 0xae4]
mov ecx, edi
mov dword [ebp - 0xafc], eax
call fcn.00402490
cmp dword [ebp - 0xabc], 0
mov dword [ebp - 0xaf8], eax
je 0x404193
mov edx, esi
mov ecx, edi
call fcn.00402490
test eax, eax
je 0x404193
mov edx, dword [ebp - 0xae0]
mov ecx, edi
call fcn.00402490
test eax, eax
je 0x404193
cmp dword [ebp - 0xadc], 0
je 0x404193
cmp dword [ebp - 0xae8], 0
je 0x404193
cmp dword [ebp - 0xaf4], 0
je 0x404193
cmp dword [ebp - 0xafc], 0
je 0x404193
cmp dword [ebp - 0xaf8], 0
je 0x404193
push str.winhttp.dll
call dword [ebp - 0xabc]
mov esi, eax
test esi, esi
je 0x404193
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x40370e
mov eax, dword [esi + 0x3c]
cmp dword [eax + esi], 0x4550
jne 0x40370e
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xabc], ecx
test ecx, ecx
je 0x40370e
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xac4], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xac0], eax
mov dword [ebp - 0xac8], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x40370e
nop dword [eax]
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpOpen
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x403cdd
mov eax, dword [ebp - 0xabc]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xac0]
jb 0x4036e0
mov dword [ebp - 0xacc], 0
mov eax, esi
mov ecx, 0x3c
add eax, ecx
mov edx, 0x5a4d
mov dword [ebp - 0xab8], eax
cmp word [esi], dx
jne 0x4037af
mov eax, dword [eax]
cmp dword [eax + esi], 0x4550
jne 0x4037a9
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xabc], ecx
test ecx, ecx
je 0x4037a9
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xac4], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xac0], eax
mov dword [ebp - 0xac8], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x4037a4
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpConnect
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x403cfd
mov eax, dword [ebp - 0xabc]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xac0]
jb 0x403776
mov edx, 0x5a4d
mov eax, dword [ebp - 0xab8]
mov dword [ebp - 0xad4], 0
cmp word [esi], dx
jne 0x403831
mov eax, dword [eax]
cmp dword [eax + esi], 0x4550
jne 0x403831
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xabc], ecx
test ecx, ecx
je 0x403831
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xac4], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xac0], eax
mov dword [ebp - 0xac8], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x403831
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpOpenRequestW
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x403d28
mov eax, dword [ebp - 0xabc]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xac0]
jb 0x403803
mov dword [ebp - 0xae0], 0
mov ecx, dword [ebp - 0xab8]
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x4038c9
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x4038c4
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xabc], ecx
test ecx, ecx
je 0x4038be
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xac4], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xac0], eax
mov dword [ebp - 0xac8], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x4038be
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpSendRequestW
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x403d48
mov eax, dword [ebp - 0xabc]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xac0]
jb 0x403890
mov ecx, dword [ebp - 0xab8]
mov eax, 0x5a4d
mov dword [ebp - 0xae4], 0
cmp word [esi], ax
jne 0x40394e
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x40394e
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xabc], ecx
test ecx, ecx
je 0x40394e
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xac4], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xac0], eax
mov dword [ebp - 0xac8], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x40394e
nop dword [eax]
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpReceiveResponse
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x403d73
mov eax, dword [ebp - 0xabc]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xac0]
jb 0x403920
mov dword [ebp - 0xac8], 0
mov ecx, 0x5a4d
cmp word [esi], cx
mov ecx, dword [ebp - 0xab8]
jne 0x4039e5
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x4039e5
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xabc], ecx
test ecx, ecx
je 0x4039df
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xac4], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xac0], eax
mov dword [ebp - 0xad0], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x4039df
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpQueryDataAvailable
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x403d93
mov eax, dword [ebp - 0xabc]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xac0]
jb 0x4039b1
mov ecx, dword [ebp - 0xab8]
mov dword [ebp - 0xac4], 0
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x403a70
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x403a70
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xabc], ecx
test ecx, ecx
je 0x403a70
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xad0], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xac0], eax
mov dword [ebp - 0xaec], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x403a70
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpReadData
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x403db9
mov eax, dword [ebp - 0xabc]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xac0]
jb 0x403a42
mov dword [ebp - 0xac0], 0
mov ecx, 0x5a4d
cmp word [esi], cx
mov ecx, dword [ebp - 0xab8]
jne 0x403b14
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x403b14
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xaec], ecx
test ecx, ecx
je 0x403b0e
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xad0], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xabc], eax
mov dword [ebp - 0xaf0], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x403b0e
nop word [eax + eax]
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpCrackUrl
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x403dd9
mov eax, dword [ebp - 0xaec]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xabc]
jb 0x403ae0
mov ecx, dword [ebp - 0xab8]
mov dword [ebp - 0xad0], 0
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x403b9f
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x403b9f
mov ecx, dword [eax + esi + 0x78]
xor edi, edi
mov dword [ebp - 0xaf0], ecx
test ecx, ecx
je 0x403ba1
mov edx, dword [ecx + esi + 0x24]
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xabc], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xaec], eax
mov dword [ebp - 0xab8], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x403b9f
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpCloseHandle
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x403dff
mov eax, dword [ebp - 0xaf0]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xaec]
jb 0x403b71
xor edi, edi
cmp dword [ebp - 0xacc], 0
mov dword [ebp - 0xabc], edi
je 0x40418c
cmp dword [ebp - 0xad4], 0
je 0x40418c
cmp dword [ebp - 0xae0], 0
je 0x40418c
cmp dword [ebp - 0xae4], 0
je 0x40418c
cmp dword [ebp - 0xac8], 0
je 0x40418c
cmp dword [ebp - 0xac4], 0
je 0x40418c
cmp dword [ebp - 0xac0], 0
je 0x40418c
cmp dword [ebp - 0xad0], 0
je 0x40418c
test edi, edi
je 0x40418c
xorps xmm0, xmm0
mov dword [ebp - 0xaa8], 0
push 0x200
lea eax, [ebp - 0x218]
movlpd qword [ebp - 0xab0], xmm0
push 0
push eax
movlpd qword [ebp - 0xa9c], xmm0
movlpd qword [ebp - 0xa94], xmm0
mov dword [ebp - 0xa8c], 0
movlpd qword [ebp - 0xa80], xmm0
mov dword [ebp - 0xab4], 0x3c
call fcn.0040d8b0
push 0x800
lea eax, [ebp - 0xa18]
push 0
push eax
call fcn.0040d8b0
mov ecx, dword [ebp - 0xa1c]
lea eax, [ebp - 0x218]
mov dword [ebp - 0xaa4], eax
add esp, 0x18
lea eax, [ebp - 0xa18]
mov dword [ebp - 0xaa0], pe_nt_image_headers32
mov dword [ebp - 0xa88], eax
cmp dword [ecx + 0x14], 7
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0xa84], 0x400
jbe 0x403cbe
mov ecx, dword [ecx]
lea edx, [ebp - 0xab4]
push edx
push 0
push eax
push ecx
call dword [ebp - 0xad0]
test eax, eax
jne 0x403e19
push eax
jmp 0x40418a
mov eax, dword [ebp - 0xac4]
mov ecx, dword [ebp - 0xac8]
movzx eax, word [eax + edi*2]
mov edx, dword [ecx + eax*4]
add edx, esi
mov dword [ebp - 0xacc], edx
jmp 0x403718
mov eax, dword [ebp - 0xac4]
mov edx, 0x5a4d
mov ecx, dword [ebp - 0xac8]
movzx eax, word [eax + edi*2]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0xab8]
add ecx, esi
mov dword [ebp - 0xad4], ecx
jmp 0x4037b9
mov eax, dword [ebp - 0xac4]
mov ecx, dword [ebp - 0xac8]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, esi
mov dword [ebp - 0xae0], eax
jmp 0x40383b
mov eax, dword [ebp - 0xac4]
mov ecx, dword [ebp - 0xac8]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0xab8]
add eax, esi
mov dword [ebp - 0xae4], eax
mov eax, 0x5a4d
jmp 0x4038d3
mov eax, dword [ebp - 0xac4]
mov ecx, dword [ebp - 0xac8]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, esi
mov dword [ebp - 0xac8], eax
jmp 0x403958
mov eax, dword [ebp - 0xac4]
mov ecx, dword [ebp - 0xad0]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0xab8]
add eax, esi
mov dword [ebp - 0xac4], eax
jmp 0x4039ef
mov eax, dword [ebp - 0xad0]
mov ecx, dword [ebp - 0xaec]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, esi
mov dword [ebp - 0xac0], eax
jmp 0x403a7a
mov eax, dword [ebp - 0xad0]
mov ecx, dword [ebp - 0xaf0]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0xab8]
add eax, esi
mov dword [ebp - 0xad0], eax
jmp 0x403b1e
mov eax, dword [ebp - 0xabc]
movzx eax, word [eax + edi*2]
mov edi, dword [ebp - 0xab8]
mov edi, dword [edi + eax*4]
add edi, esi
jmp 0x403ba1
push dword [ebp - 0xaa0]
xorps xmm0, xmm0
mov dword [ebp - 0xb08], 0
push dword [ebp - 0xaa4]
lea ecx, [ebp - 0xb18]
mov dword [ebp - 0xb04], 0
movups xmmword [ebp - 0xb18], xmm0
call fcn.00409fe0
lea eax, [ebp - 0xb18]
push eax
lea ecx, [ebp - 0xa50]
call fcn.00408940
mov ecx, dword [ebp - 0xb04]
cmp ecx, 7
jbe 0x403ea0
mov edx, dword [ebp - 0xb18]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403e96
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404257
push ecx
push edx
call fcn.0040c034
add esp, 8
push dword [ebp - 0xa84]
xorps xmm0, xmm0
mov dword [ebp - 0xb08], 0
push dword [ebp - 0xa88]
lea ecx, [ebp - 0xb18]
mov dword [ebp - 0xb04], 0
movups xmmword [ebp - 0xb18], xmm0
call fcn.00409fe0
lea eax, [ebp - 0xb18]
push eax
lea ecx, [ebp - 0xa38]
call fcn.00408940
mov ecx, dword [ebp - 0xb04]
cmp ecx, 7
jbe 0x403f27
mov edx, dword [ebp - 0xb18]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403f1d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404257
push ecx
push edx
call fcn.0040c034
add esp, 8
movzx eax, word [ebp - 0xa9c]
push 0
push 0
push 0
push 0
mov dword [ebp - 0xa1c], eax
mov eax, dword [ebp - 0xaa8]
push str.Mozilla_5.0__Custom_Agent_
mov dword [ebp - 0xaf0], eax
call dword [ebp - 0xacc]
mov ecx, eax
mov dword [ebp - 0xacc], ecx
test ecx, ecx
je 0x40418c
cmp dword [ebp - 0xa3c], 7
lea eax, [ebp - 0xa50]
push 0
push dword [ebp - 0xa1c]
cmova eax, dword [ebp - 0xa50]
push eax
push ecx
call dword [ebp - 0xad4]
mov edx, eax
mov dword [ebp - 0xad4], edx
test edx, edx
je 0x404184
cmp dword [ebp - 0xa24], 7
lea ecx, [ebp - 0xa38]
mov dword [ebp - 0xa1c], 0x800000
cmova ecx, dword [ebp - 0xa38]
xor eax, eax
cmp dword [ebp - 0xaf0], 2
cmove eax, dword [ebp - 0xa1c]
push eax
push 0
push 0
push 0
push ecx
push 0x42cb18
push edx
call dword [ebp - 0xae0]
mov dword [ebp - 0xab8], eax
test eax, eax
je 0x40417c
push 0
push 0
push 0
push 0
push 0
push 0
push eax
call dword [ebp - 0xae4]
test eax, eax
je 0x404174
push 0
push dword [ebp - 0xab8]
call dword [ebp - 0xac8]
test eax, eax
je 0x404174
mov ecx, dword [ebp - 0xb00]
mov eax, ecx
cmp dword [ecx + 0x14], 7
jbe 0x404028
mov eax, dword [ecx]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [ebp - 0xae8]
mov dword [ebp - 0xae8], eax
cmp eax, 0xffffffff
je 0x404174
mov edi, dword [ebp - 0xab8]
lea eax, [ebp - 0xa78]
push eax
push edi
mov dword [ebp - 0xa78], 0
call dword [ebp - 0xac4]
test eax, eax
je 0x404121
mov eax, dword [ebp - 0xa78]
test eax, eax
je 0x404121
push 0x42523e
push eax
call fcn.0040c04b
mov edi, eax
add esp, 8
test edi, edi
je 0x40411b
push dword [ebp - 0xa78]
push 0
push edi
call fcn.0040d8b0
add esp, 0xc
lea eax, [ebp - 0xa20]
push eax
push dword [ebp - 0xa78]
push edi
push dword [ebp - 0xab8]
call dword [ebp - 0xac0]
test eax, eax
je 0x404112
mov eax, dword [ebp - 0xa20]
test eax, eax
je 0x4040fa
push 0
lea ecx, [ebp - 0xa1c]
mov dword [ebp - 0xa1c], 0
push ecx
push eax
push edi
push dword [ebp - 0xae8]
call dword [ebp - 0xaf4]
test eax, eax
je 0x404112
push edi
call fcn.0040be02
add esp, 4
cmp dword [ebp - 0xa78], 0
ja 0x404050
jmp 0x40411b
push edi
call fcn.0040be02
add esp, 4
mov edi, dword [ebp - 0xab8]
mov eax, dword [ebp - 0xb00]
cmp dword [eax + 0x14], 7
jbe 0x40412f
mov eax, dword [eax]
lea ecx, [ebp - 0xa74]
push ecx
push 0
push eax
call dword [ebp - 0xaf8]
push dword [ebp - 0xae8]
call dword [ebp - 0xafc]
push edi
mov edi, dword [ebp - 0xabc]
call edi
push dword [ebp - 0xad4]
call edi
push dword [ebp - 0xacc]
call edi
push esi
call dword [ebp - 0xadc]
mov byte [ebp - 0xad5], 1
jmp 0x40419a
push dword [ebp - 0xab8]
call edi
push dword [ebp - 0xad4]
call edi
push dword [ebp - 0xacc]
call edi
push esi
call dword [ebp - 0xadc]
mov byte [ebp - 0xad5], 0
mov ecx, dword [ebp - 0xa24]
cmp ecx, 7
jbe 0x4041da
mov edx, dword [ebp - 0xa38]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4041d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404257
push ecx
push edx
call fcn.0040c034
add esp, 8
mov ecx, dword [ebp - 0xa3c]
xor eax, eax
mov dword [ebp - 0xa28], 0
mov dword [ebp - 0xa24], 7
mov word [ebp - 0xa38], ax
cmp ecx, 7
jbe 0x404233
mov edx, dword [ebp - 0xa50]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404229
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404257
push ecx
push edx
call fcn.0040c034
add esp, 8
mov al, byte [ebp - 0xad5]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0040bdf4
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004127c5
int3