Function at 0x42e680
Capabilities:
Reference http user-agent string

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4640b8
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x474860]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov bl, dl
mov edi, ecx
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x60], eax
mov dword [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 7
ja 0x42e72a
nop
nop
mov al, byte [0x3c626c31]
insd dword es:[edi], dx
leave
pop esp
arpl dx, di
pushal
push ds
invalid
push ecx
mov ecx, dword [ebp + 0x10]
xor eax, eax
lea ecx, [ecx - 0x10]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x20], eax
mov esi, esp
call fcn.00407420
add eax, 0x10
lea ecx, [ebp - 0x38]
mov dword [esi], eax
call fcn.00444010
add esp, 4
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x28]
or esi, 0xffffffff
mov dword [ebp - 0x58], eax
test bl, bl
jne 0x42e84a
push 0x46cf68
lea edx, [ebp + 8]
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x40], 0
call fcn.00407040
add esp, 4
lea ecx, [ebp + 0xc]
push ecx
mov edx, eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 4
call fcn.0040ca10
add esp, 4
push 0x46d6e4
mov edx, eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
call fcn.00407040
add esp, 4
lea ecx, [ebp + 0x10]
push ecx
mov edx, eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 6
call fcn.0040ca10
add esp, 4
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e7df
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e7ff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x50]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e81f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x40]
push eax
mov ecx, eax
call fcn.004071d0
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e84a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor ebx, ebx
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x4c], ebx
call fcn.00432fa0
push eax
lea ecx, [ebp - 0x4c]
call fcn.00406f00
mov byte [ebp - 4], 0xb
mov eax, dword [ebp + 0x10]
cmp dword [eax - 0xc], ebx
je 0x42e8b0
call fcn.00433040
mov edx, eax
test edx, edx
jne 0x42e886
xor ecx, ecx
jmp 0x42e89f
mov ecx, edx
lea esi, [ecx + 2]
jmp 0x42e890
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42e890
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x4c]
call fcn.00407350
mov eax, dword [ebp + 0x10]
cmp dword [eax - 0xc], 0
setne byte [ebp - 0x45]
call fcn.0041cbb0
cmp dword [eax + 0x1f0], 0
je 0x42f510
call fcn.0041cbb0
cmp dword [eax + 0x1f4], 0
je 0x42f510
call fcn.0041cbb0
cmp dword [eax + 0x1f8], 0
je 0x42f510
call fcn.0041cbb0
cmp dword [eax + 0x1fc], 0
je 0x42f510
call fcn.0041cbb0
cmp dword [eax + 0x200], 0
je 0x42f510
call fcn.0041cbb0
cmp dword [eax + 0x204], 0
je 0x42f510
call fcn.0041cbb0
cmp dword [eax + 0x208], 0
je 0x42f510
call fcn.0041cbb0
cmp dword [eax + 0x20c], 0
je 0x42f510
call fcn.0041cbb0
mov eax, dword [eax + 0x1f0]
push 0
push 0
push 0
push 0
push str.LogEvents
call eax
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x42e975
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
or edi, 0xffffffff
jmp 0x42f146
mov esi, dword [ebp + 8]
call fcn.0041cbb0
mov eax, dword [eax + 0x1f4]
push 0
push edi
push esi
push dword [ebp - 0x50]
call eax
mov dword [ebp - 0x5c], eax
test eax, eax
jne 0x42e9a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
or edi, 0xffffffff
jmp 0x42f146
mov esi, dword [ebp + 0xc]
cmp dword [esi - 4], 1
jle 0x42e9ba
push dword [esi - 0xc]
lea ecx, [ebp + 0xc]
call fcn.004072d0
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x4c]
cmp dword [edi - 4], 1
jle 0x42e9d1
push dword [edi - 0xc]
lea ecx, [ebp - 0x4c]
call fcn.004072d0
mov edi, dword [ebp - 0x4c]
call fcn.0041cbb0
mov eax, dword [eax + 0x1f8]
push 0
push 0
push 0
push 0
push esi
push edi
push dword [ebp - 0x5c]
call eax
mov ebx, eax
mov dword [ebp - 0x54], ebx
test ebx, ebx
jne 0x42ea04
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
or edi, 0xffffffff
jmp 0x42f146
cmp byte [ebp - 0x45], 0
je 0x42f274
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x40], eax
mov eax, 0x46cfb4
mov byte [ebp - 4], 0xc
test eax, 0xffff0000
jne 0x42ea4b
movzx esi, ax
mov ecx, esi
call fcn.00407830
test eax, eax
je 0x42ea58
push esi
push eax
lea ecx, [ebp - 0x40]
call fcn.00407490
jmp 0x42ea58
push 0x46cfb4
lea ecx, [ebp - 0x40]
call fcn.0042f7d0
push ecx
mov byte [ebp - 4], 0xd
mov eax, dword [section..data]
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x1c], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.Mozilla_5.0__compatible__MSIE_10.0__Windows_NT_6.2__WOW64__Trident_6.0_
mov byte [ebp - 4], 0xe
test eax, 0xffff0000
jne 0x42eaa0
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42eaac
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42eaac
push str.Mozilla_5.0__compatible__MSIE_10.0__Windows_NT_6.2__WOW64__Trident_6.0_
mov ecx, esi
call fcn.0042f7d0
push ecx
mov byte [ebp - 4], 0xf
mov eax, dword [section..data]
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x1c], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.User_Agent
mov byte [ebp - 4], 0x10
test eax, 0xffff0000
jne 0x42eaf1
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42eafd
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42eafd
push str.User_Agent
mov ecx, esi
call fcn.0042f7d0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.0042e3f0
mov esi, dword [ebp + 8]
add esp, 4
mov ecx, dword [esi - 0x10]
mov dword [ebp - 0x18], esp
mov eax, dword [ecx]
mov dword [ebp - 0x1c], esp
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x42eb3f
cmp ecx, dword [esi - 0x10]
jne 0x42eb3f
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x42eb79
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov edi, eax
test edi, edi
jne 0x42eb53
call fcn.00407410
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov ecx, dword [esi - 0xc]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ecx*2 + 2]
push esi
push eax
lea eax, [edi + 0x10]
push eax
call fcn.004488f8
add esp, 0x10
mov ecx, dword [ebp - 0x1c]
lea eax, [edi + 0x10]
mov dword [ecx], eax
push ecx
mov byte [ebp - 4], 0x11
mov eax, dword [section..data]
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x1c], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.Host
mov byte [ebp - 4], 0x12
test eax, 0xffff0000
jne 0x42ebc6
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42ebd2
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42ebd2
push str.Host
mov ecx, esi
call fcn.0042f7d0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.0042e3f0
mov eax, dword [section..data]
add esp, 4
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x44], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.no_cache
shr eax, 0x10
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x1c], eax
mov ecx, str.no_cache
test eax, eax
jne 0x42ec30
movzx edi, cx
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42ec3c
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42ec3c
push str.no_cache
mov ecx, esi
call fcn.0042f7d0
push ecx
mov byte [ebp - 4], 0x14
mov eax, dword [section..data]
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x44], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.Cache_Control
mov byte [ebp - 4], 0x15
test eax, 0xffff0000
jne 0x42ec81
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42ec8d
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42ec8d
push str.Cache_Control
mov ecx, esi
call fcn.0042f7d0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.0042e3f0
mov eax, dword [section..data]
add esp, 4
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.close
mov byte [ebp - 4], 0x16
test eax, 0xffff0000
jne 0x42ece3
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42ecef
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42ecef
push str.close
mov ecx, esi
call fcn.0042f7d0
push ecx
mov byte [ebp - 4], 0x17
mov eax, dword [section..data]
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.Connection
mov byte [ebp - 4], 0x18
test eax, 0xffff0000
jne 0x42ed34
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42ed40
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42ed40
push str.Connection
mov ecx, esi
call fcn.0042f7d0
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.0042e3f0
mov eax, dword [section..data]
add esp, 4
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.application_json__text_javascript_____q0.01
mov byte [ebp - 4], 0x19
test eax, 0xffff0000
jne 0x42ed96
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42eda2
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42eda2
push str.application_json__text_javascript_____q0.01
mov ecx, esi
call fcn.0042f7d0
push ecx
mov byte [ebp - 4], 0x1a
mov eax, dword [section..data]
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.Accept
mov byte [ebp - 4], 0x1b
test eax, 0xffff0000
jne 0x42ede7
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42edf3
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42edf3
push str.Accept
mov ecx, esi
call fcn.0042f7d0
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.0042e3f0
mov eax, dword [section..data]
add esp, 4
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.application_json__charsetutf_8
mov byte [ebp - 4], 0x1c
test eax, 0xffff0000
jne 0x42ee49
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42ee55
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42ee55
push str.application_json__charsetutf_8
mov ecx, esi
call fcn.0042f7d0
push ecx
mov byte [ebp - 4], 0x1d
mov eax, dword [section..data]
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.Content_Type
mov byte [ebp - 4], 0x1e
test eax, 0xffff0000
jne 0x42ee9a
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42eea6
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42eea6
push str.Content_Type
mov ecx, esi
call fcn.0042f7d0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.0042e3f0
mov eax, dword [section..data]
add esp, 4
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.en_US
mov byte [ebp - 4], 0x1f
test eax, 0xffff0000
jne 0x42eefc
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42ef08
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42ef08
push str.en_US
mov ecx, esi
call fcn.0042f7d0
push ecx
mov byte [ebp - 4], 0x20
mov eax, dword [section..data]
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.Accept_Language
mov byte [ebp - 4], 0x21
test eax, 0xffff0000
jne 0x42ef4d
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42ef59
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42ef59
push str.Accept_Language
mov ecx, esi
call fcn.0042f7d0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.0042e3f0
mov eax, dword [section..data]
add esp, 4
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.gzip__deflate
mov byte [ebp - 4], 0x22
test eax, 0xffff0000
jne 0x42efaf
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42efbb
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42efbb
push str.gzip__deflate
mov ecx, esi
call fcn.0042f7d0
push ecx
mov byte [ebp - 4], 0x23
mov eax, dword [section..data]
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.Accept_Encoding
mov byte [ebp - 4], 0x24
test eax, 0xffff0000
jne 0x42f000
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42f00c
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42f00c
push str.Accept_Encoding
mov ecx, esi
call fcn.0042f7d0
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.0042e3f0
mov eax, dword [section..data]
add esp, 4
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x25
cmp dword [ebp - 0x1c], 0
jne 0x42f061
mov eax, str.no_cache
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42f06d
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42f06d
push str.no_cache
mov ecx, esi
call fcn.0042f7d0
push ecx
mov byte [ebp - 4], 0x26
mov eax, dword [section..data]
mov esi, esp
mov ecx, section..data
mov dword [ebp - 0x18], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.Pragma
mov byte [ebp - 4], 0x27
test eax, 0xffff0000
jne 0x42f0b2
movzx edi, ax
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42f0be
push edi
push eax
mov ecx, esi
call fcn.00407490
jmp 0x42f0be
push str.Pragma
mov ecx, esi
call fcn.0042f7d0
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.0042e3f0
mov esi, dword [ebp - 0x40]
add esp, 8
cmp dword [ebp - 0x24], 0x10
mov eax, dword [esi - 0xc]
lea edi, [ebp - 0x38]
cmovae edi, dword [ebp - 0x38]
cmp dword [esi - 4], 1
mov dword [ebp - 0x1c], eax
jle 0x42f0f7
push eax
lea ecx, [ebp - 0x40]
call fcn.004072d0
mov esi, dword [ebp - 0x40]
call fcn.0041cbb0
mov ecx, dword [ebp - 0x58]
mov eax, dword [eax + 0x1fc]
push 0
push ecx
push ecx
push edi
push dword [ebp - 0x1c]
push esi
push ebx
call eax
cmp eax, 1
je 0x42f252
call dword [sym.imp.KERNEL32.dll_GetLastError]
add esi, 0xfffffff0
or edi, 0xffffffff
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0xb
lea eax, [esi + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f143
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x1c]
call fcn.0041cbb0
cmp dword [eax + 0x20c], 0
je 0x42f190
test ebx, ebx
je 0x42f166
call fcn.0041cbb0
mov eax, dword [eax + 0x20c]
push ebx
call eax
mov ebx, dword [ebp - 0x5c]
test ebx, ebx
je 0x42f17b
call fcn.0041cbb0
mov eax, dword [eax + 0x20c]
push ebx
call eax
mov ebx, dword [ebp - 0x50]
test ebx, ebx
je 0x42f190
call fcn.0041cbb0
mov eax, dword [eax + 0x20c]
push ebx
call eax
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x4c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f1b0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x24], 0x10
jb 0x42f1c1
push dword [ebp - 0x38]
call fcn.00447bb4
add esp, 4
mov byte [ebp - 4], 1
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov dword [ebp - 0x24], 0xf
mov dword [ebp - 0x28], 0
mov byte [ebp - 0x38], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f1f3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp + 0xc]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f213
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 0x10]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x42f234
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00447bb9
mov esp, ebp
pop ebp
ret
add esi, 0xfffffff0
or edi, 0xffffffff
mov byte [ebp - 4], 0xb
lea eax, [esi + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f2a6
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x42f2a6
call fcn.0041cbb0
mov eax, dword [eax + 0x1fc]
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
call eax
cmp eax, 1
je 0x42f2a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
or edi, 0xffffffff
jmp 0x42f146
or edi, 0xffffffff
call fcn.0041cbb0
mov eax, dword [eax + 0x200]
push 0
push ebx
call eax
test eax, eax
je 0x42f509
call fcn.0041cbb0
mov eax, dword [eax + 0x218]
push 0
lea ecx, [ebp - 0x3c]
push ecx
push 0
push 0
push 0x16
push ebx
call eax
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 0x7a
jne 0x42f421
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
shr eax, 1
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0044738c
mov ecx, dword [ebp - 0x3c]
add esp, 4
shr ecx, 1
push ecx
mov ebx, eax
push 0
push ebx
mov dword [ebp - 0x58], ebx
call fcn.0044b2e0
add esp, 0xc
call fcn.0041cbb0
mov eax, dword [eax + 0x218]
push 0
lea edx, [ebp - 0x3c]
push edx
push ebx
push 0
push 0x16
push dword [ebp - 0x54]
call eax
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x40], esi
mov byte [ebp - 4], 0x28
test ebx, ebx
je 0x42f391
test ebx, 0xffff0000
jne 0x42f375
movzx edi, bx
mov ecx, edi
call fcn.00407830
test eax, eax
je 0x42f3a0
push edi
push eax
lea ecx, [ebp - 0x40]
call fcn.00407490
jmp 0x42f39d
mov ecx, ebx
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42f380
sub ecx, edx
sar ecx, 1
jmp 0x42f393
xor ecx, ecx
push ecx
push ebx
lea ecx, [ebp - 0x40]
call fcn.00407350
mov esi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x60]
mov byte [ebp - 4], 0x29
mov edi, dword [ecx]
lea ebx, [esi - 0x10]
sub edi, 0x10
cmp ebx, edi
je 0x42f3f2
cmp dword [edi + 0xc], 0
jl 0x42f3e9
mov eax, dword [ebx]
cmp eax, dword [edi]
jne 0x42f3e9
mov ecx, ebx
call fcn.00407420
mov esi, eax
or ecx, 0xffffffff
lea edx, [edi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42f3df
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0x60]
lea eax, [esi + 0x10]
mov dword [ecx], eax
jmp 0x42f3f2
push dword [esi - 0xc]
push esi
call fcn.00407350
mov byte [ebp - 4], 0xb
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f40d
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x58]
call fcn.004486af
mov ebx, dword [ebp - 0x54]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
add esp, 4
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 4
call fcn.0041cbb0
mov eax, dword [eax + 0x218]
push 0
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
push 0
push 0x20000013
push ebx
call eax
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
je 0x42f460
mov eax, dword [ebp - 0x1c]
mov dword [ecx], eax
lea ebx, [ebx]
mov dword [ebp - 0x3c], 0
call fcn.0041cbb0
mov eax, dword [eax + 0x204]
lea ecx, [ebp - 0x3c]
push ecx
push ebx
call eax
test eax, eax
je 0x42f4f3
mov eax, dword [ebp - 0x3c]
inc eax
push eax
call fcn.0044738c
mov esi, eax
add esp, 4
test esi, esi
je 0x42f4ff
mov ecx, dword [ebp - 0x3c]
inc ecx
push ecx
push 0
push esi
call fcn.0044b2e0
add esp, 0xc
call fcn.0041cbb0
mov eax, dword [eax + 0x208]
lea ecx, [ebp - 0x20]
push ecx
push dword [ebp - 0x3c]
push esi
push ebx
call eax
test eax, eax
je 0x42f4f3
mov ecx, dword [ebp - 0x68]
test ecx, ecx
je 0x42f4d5
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x42f4d5
mov dword [ecx], esi
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x42f4e1
mov dword [ecx], eax
jmp 0x42f4e1
push esi
call fcn.004486af
mov eax, dword [ebp - 0x3c]
add esp, 4
test eax, eax
jne 0x42f460
or edi, 0xffffffff
xor esi, esi
jmp 0x42f146
call edi
mov esi, eax
or edi, 0xffffffff
jmp 0x42f146
mov dword [ebp - 0x3c], 0
or edi, 0xffffffff
xor esi, esi
jmp 0x42f146
mov esi, 0x21a
or edi, 0xffffffff
jmp 0x42f146