Function at 0x100a9cd4
Capabilities:
Check http status code
Read http header

Disassembly:
push 0x4c
mov eax, 0x10148d6f
call fcn.100fb0c7
mov edi, ecx
mov eax, dword [ebp + 8]
cmp eax, dword [edi + 0x34]
je 0x100a9d44
add edi, 0x1c
cmp dword [edi + 0x14], 8
jb 0x100a9cf5
mov edi, dword [edi]
xor eax, eax
mov dword [ebp - 0x1c], str.RequestId
mov word [ebp - 0x14], ax
mov word [ebp - 0x2c], ax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x18], edi
push eax
push str._HttpWin_Async__WinHttpCallback
push ecx
push 0xa
mov ecx, 0x109a65b
mov dword [ebp - 0x20], 0x101751d4
mov dword [ebp - 0x34], str.Message
mov dword [ebp - 0x30], str.HINTERNET_passed_to_WinHttp_callback_does_not_match_HINTERNET_stored_on_IRequest
mov dword [ebp - 0x38], 0x101751d4
call fcn.1005d1ee
jmp 0x100aa622
mov eax, dword [ebp + 0xc]
mov ecx, 0x10000
cmp eax, ecx
ja 0x100aa169
je 0x100aa105
sub eax, 1
je 0x100aa0b2
sub eax, 1
je 0x100aa07a
dec eax
sub eax, 1
je 0x100a9ff1
sub eax, 4
je 0x100a9f67
sub eax, 8
je 0x100a9f10
sub eax, 0x7f0
je 0x100a9e22
sub eax, 0x3800
jne 0x100aa622
xor ebx, ebx
lea eax, [ebp + 0xb]
push ebx
lea esi, [edi + 0xe8]
mov byte [ebp + 0xb], bl
push eax
mov ecx, esi
call fcn.1005d1ee
push 1
lea eax, [ebp + 0xb]
mov byte [ebp + 0xb], 1
push eax
mov ecx, esi
call fcn.1005d1ee
call fcn.10095af0
test al, al
je 0x100a9dfb
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100a9dda
mov eax, dword [eax]
mov dword [ebp + 8], eax
mov edx, 0x33f
lea eax, [ebp + 8]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_REDIRECT
push ecx
push 0xc8
mov ecx, 0x30303030
call fcn.1005d1ee
push dword [ebp + 0x10]
lea ecx, [edi + 0x94]
push edi
call fcn.1005d1ee
test al, al
jne 0x100aa622
mov eax, dword [edi]
lea ecx, [ebp - 0x58]
push ecx
mov ecx, edi
call dword [eax + 0x40]
jmp 0x100aa622
call fcn.10095af0
mov esi, 0x33f
test al, al
je 0x100a9e59
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100a9e3b
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
mov edx, esi
lea eax, [ebp + 0x10]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING
push ecx
push 0xc8
mov ecx, 0x30303030
call fcn.1005d1ee
cmp byte [edi + 0x12], 0
jne 0x100a9e74
push str._HttpWin_Async__WinHttpCallback:_handle_is_being_closed_without_aborting
push 0xa
mov edx, esi
mov ecx, 0x12cd423
call fcn.1005d1ee
pop ecx
pop ecx
xor ebx, ebx
lea ecx, [ebp - 0x58]
push ebx
push ebx
mov edx, 0x28565c8
mov dword [edi + 0x34], ebx
lea esi, [edi + 0x94]
call fcn.1005d1ee
cmp dword [esi + 0x10], 2
mov ecx, eax
je 0x100a9ec6
cmp dword [esi + 0x10], 4
je 0x100a9ec6
mov eax, dword [ecx]
sub esp, 0x18
mov esi, dword [esi + 0xc]
mov edx, esp
push esi
mov dword [edx], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ecx + 0x10]
lea ecx, [edi + 0x94]
mov dword [edx + 0x10], eax
call fcn.1005d1ee
mov ecx, dword [edi + 0xcc]
test ecx, ecx
je 0x100a9edb
push edi
call fcn.1005d1ee
jmp 0x100aa622
xor eax, eax
mov dword [ebp - 0x34], str.Message
mov word [ebp - 0x2c], ax
mov ecx, 0x2693556
lea eax, [ebp - 0x38]
mov dword [ebp - 0x30], str.m_pRequestBroker_is_null
push eax
push str._case__WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING
push 0xa
mov dword [ebp - 0x38], 0x101751d4
call fcn.1005d1ee
jmp 0x100aa622
cmp dword [edi + 0x100], 0xffffffff
lea esi, [edi + 0xe8]
je 0x100a9f30
push 1
lea eax, [ebp + 0x13]
mov byte [ebp + 0x13], 7
push eax
mov ecx, esi
call fcn.1005d1ee
push 1
lea eax, [ebp + 0x13]
mov byte [ebp + 0x13], 8
push eax
mov ecx, esi
call fcn.1005d1ee
call fcn.10095af0
test al, al
je 0x100aa622
add edi, 0x1c
cmp dword [edi + 0x14], 8
jb 0x100a9f59
mov edi, dword [edi]
lea eax, [ebp + 0x10]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_SENDING_REQUEST
jmp 0x100aa0e8
push 1
lea eax, [ebp + 0xb]
mov byte [ebp + 0xb], 6
lea ecx, [edi + 0xe8]
push eax
call fcn.1005d1ee
call fcn.10095af0
test al, al
je 0x100a9fb1
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100a9f90
mov eax, dword [eax]
mov dword [ebp + 8], eax
mov edx, 0x33f
lea eax, [ebp + 8]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER
push ecx
push 0xc8
mov ecx, 0x30303030
call fcn.1005d1ee
and dword [ebp + 0xc], 0
lea ecx, [edi + 0xc]
call fcn.1002fca0
lea ecx, [ebp + 0xc]
push ecx
push 0xa
mov edx, dword [eax]
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call dword [edx + 0x20]
cmp dword [ebp - 0x40], 0
jne 0x100aa622
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x100aa622
push dword [ebp + 0x10]
mov eax, dword [ecx]
push edi
call dword [eax + 0x10]
jmp 0x100aa622
xor ebx, ebx
mov byte [ebp + 0xb], 5
push ebx
lea eax, [ebp + 0xb]
lea ecx, [edi + 0xe8]
push eax
call fcn.1005d1ee
call fcn.10095af0
test al, al
je 0x100aa03c
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa01b
mov eax, dword [eax]
mov dword [ebp + 8], eax
mov edx, 0x33f
lea eax, [ebp + 8]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER
push ecx
push 0xc8
mov ecx, 0x30303030
call fcn.1005d1ee
lea ecx, [edi + 0xc]
mov dword [ebp + 0xc], ebx
call fcn.1002fca0
lea ecx, [ebp + 0xc]
push ecx
push 0xa
mov edx, dword [eax]
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call dword [edx + 0x20]
cmp dword [ebp - 0x40], ebx
jne 0x100aa622
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x100aa622
push dword [ebp + 0x10]
mov eax, dword [ecx]
push edi
call dword [eax + 8]
jmp 0x100aa622
push 1
lea eax, [ebp + 0x13]
mov byte [ebp + 0x13], 4
lea ecx, [edi + 0xe8]
push eax
call fcn.1005d1ee
call fcn.10095af0
test al, al
je 0x100aa622
add edi, 0x1c
cmp dword [edi + 0x14], 8
jb 0x100aa0a7
mov edi, dword [edi]
lea eax, [ebp + 0x10]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_NAME_RESOLVED
jmp 0x100aa0e8
push 1
lea eax, [ebp + 0x13]
mov byte [ebp + 0x13], 3
lea ecx, [edi + 0xe8]
push eax
call fcn.1005d1ee
call fcn.10095af0
test al, al
je 0x100aa622
add edi, 0x1c
cmp dword [edi + 0x14], 8
jb 0x100aa0df
mov edi, dword [edi]
lea eax, [ebp + 0x10]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_RESOLVING_NAME
push ecx
push 0xc8
mov edx, 0x33f
mov dword [ebp + 0x10], edi
mov ecx, 0x30303030
call fcn.1005d1ee
jmp 0x100aa622
call fcn.10095af0
test al, al
je 0x100aa13a
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa119
mov eax, dword [eax]
mov dword [ebp + 8], eax
mov edx, 0x33f
lea eax, [ebp + 8]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_SECURE_FAILURE
push ecx
push 0xc8
mov ecx, 0x30303030
call fcn.1005d1ee
xor ebx, ebx
lea ecx, [ebp - 0x40]
push ebx
push ebx
mov edx, 0x28565c5
call fcn.1005d1ee
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
lea eax, [ebp - 0x40]
push eax
lea ecx, [edi + 0x94]
lea eax, [ebp - 0x58]
jmp 0x100aa61c
cmp eax, 0x20000
je 0x100aa4e1
cmp eax, 0x40000
je 0x100aa41a
cmp eax, 0x80000
je 0x100aa354
cmp eax, 0x100000
je 0x100aa32b
cmp eax, 0x200000
je 0x100aa1f0
cmp eax, 0x400000
jne 0x100aa622
call fcn.10095af0
test al, al
je 0x100aa1dc
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa1bb
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x10]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE
push ecx
push 0xc8
mov edx, 0x33f
mov ecx, 0x30303030
call fcn.1005d1ee
mov ecx, dword [edi + 0xc4]
lea eax, [ebp - 0x40]
push eax
call fcn.1005d1ee
jmp 0x100aa157
mov esi, dword [ebp + 0x10]
call fcn.10095af0
test esi, esi
je 0x100aa2cd
test al, al
je 0x100aa227
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa20f
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
lea eax, [esi + 4]
push eax
push esi
lea eax, [ebp + 0x10]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_REQUEST_ERROR:_result:__u__error:__u
push ecx
push ecx
call fcn.1005d1ee
mov ecx, dword [esi + 4]
cmp ecx, 0x2f00
jne 0x100aa270
call fcn.10095af0
test al, al
je 0x100aa5b7
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa24a
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x10]
push eax
push str.Got_a_ERROR_WINHTTP_RESEND_REQUEST___Resending_the_request_now
push ecx
push 0xc8
mov edx, 0x33f
mov ecx, 0x30303030
call fcn.1005d1ee
jmp 0x100aa5b7
call fcn.1005d1ee
test al, al
je 0x100aa2aa
mov ecx, edi
call fcn.100aa659
test al, al
je 0x100aa2aa
call fcn.10095af0
test al, al
je 0x100aa5b7
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa29c
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x10]
push eax
push str.Got_a_proxy_error__but_found_a_fallback_proxy___Resending_the_request_with_new_proxy
jmp 0x100aa256
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x40]
movzx edx, ax
or edx, 0x80070000
test eax, eax
push 0x28565c6
cmovle edx, eax
call fcn.1005d1ee
jmp 0x100aa157
test al, al
je 0x100aa2fd
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa2dc
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
mov edx, 0x33f
lea eax, [ebp + 0x10]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_REQUEST_ERROR_with_no_WINHTTP_ASYNC_RESULT
push ecx
push 0xc8
mov ecx, 0x30303030
call fcn.1005d1ee
mov eax, dword [0x101cfc78]
mov ecx, 0x101cfc78
push 0x597123
call dword [eax + 4]
xor ebx, ebx
lea ecx, [ebp - 0x58]
push ebx
push ebx
mov edx, 0x28565c7
call fcn.1005d1ee
lea ecx, [edi + 0x94]
jmp 0x100aa618
call fcn.10095af0
test al, al
je 0x100aa1dc
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa343
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x10]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE
jmp 0x100aa1c7
call fcn.10095af0
test al, al
je 0x100aa389
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa368
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
mov edx, 0x33f
lea eax, [ebp + 0x10]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_READ_COMPLETE
push ecx
push 0xc8
mov ecx, 0x30303030
call fcn.1005d1ee
mov ecx, dword [edi + 0xc8]
lea eax, [ebp + 0x13]
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 0x40]
push eax
call fcn.1009e170
cmp dword [ebp - 0x40], 0
lea esi, [edi + 0x94]
jne 0x100aa3b9
push dword [edi + 0xc0]
mov ecx, esi
push edi
call fcn.1005d1ee
lea eax, [ebp - 0x40]
mov ecx, esi
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.1005d1ee
cmp byte [ebp + 0x13], 0
je 0x100aa406
mov al, byte [edi + 0x11]
lea edx, [edi + 0x1c]
cmp dword [edx + 0x14], 8
lea ecx, [edi + 0xe8]
jb 0x100aa3e2
mov edx, dword [edx]
push dword [edi + 0x14]
push edi
push eax
push 1
lea eax, [edi + 0x78]
push eax
push edx
call fcn.1005d1ee
push dword [edi + 0xc0]
mov ecx, esi
push edi
call fcn.1005d1ee
jmp 0x100aa622
mov ecx, dword [edi + 0xc8]
lea eax, [ebp - 0x58]
push eax
call fcn.1009dfe3
jmp 0x100aa622
lea eax, [edi + 0x50]
push eax
lea ecx, [ebp - 0x18]
call fcn.1005d1ee
mov ecx, dword [ebp - 0x18]
call fcn.1005d1ee
xor ebx, ebx
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x100aa43f
call fcn.1000b67c
or dword [ebp - 4], 0xffffffff
lea eax, [ebp + 0xb]
push 1
lea ecx, [edi + 0xe8]
mov byte [ebp + 0xb], 0xa
push eax
call fcn.1005d1ee
call fcn.10095af0
test al, al
je 0x100aa48d
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa46c
mov eax, dword [eax]
mov dword [ebp + 8], eax
mov edx, 0x33f
lea eax, [ebp + 8]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE
push ecx
push 0xc8
mov ecx, 0x30303030
call fcn.1005d1ee
lea ecx, [edi + 0xc]
mov dword [ebp + 0xc], ebx
call fcn.1002fca0
lea ecx, [ebp + 0xc]
push ecx
push 0xa
mov edx, dword [eax]
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call dword [edx + 0x20]
cmp dword [ebp - 0x40], ebx
jne 0x100aa4bb
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x100aa4bb
mov eax, dword [ecx]
push edi
call dword [eax + 0xc]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi + 0xc8]
push dword [eax]
lea eax, [ebp - 0x58]
push eax
call fcn.1009e090
lea eax, [ebp - 0x58]
push eax
lea ecx, [edi + 0x94]
lea eax, [ebp - 0x28]
jmp 0x100aa61c
push 1
lea eax, [ebp + 0x13]
mov byte [ebp + 0x13], 9
lea ecx, [edi + 0xe8]
push eax
call fcn.1005d1ee
call fcn.10095af0
mov esi, 0x33f
test al, al
je 0x100aa52d
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa50f
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
mov edx, esi
lea eax, [ebp + 0x10]
push eax
push str.Mso::Http__s_:_received_WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE
push ecx
push 0xc8
mov ecx, 0x30303030
call fcn.1005d1ee
call fcn.100a0536
test al, al
je 0x100aa5f2
cmp byte [edi + 0x4d], 0
je 0x100aa5f2
xor ebx, ebx
mov dword [ebp + 8], 4
push ebx
lea eax, [ebp + 8]
mov dword [ebp + 0x10], ebx
push eax
lea eax, [ebp + 0x10]
push eax
push ebx
push 0x20000013
push dword [edi + 0x34]
call dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
test eax, eax
je 0x100aa5c0
cmp dword [ebp + 0x10], 0x191
jne 0x100aa5f2
call fcn.10095af0
test al, al
je 0x100aa5a7
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa589
mov eax, dword [eax]
mov dword [ebp + 0xc], eax
mov edx, esi
lea eax, [ebp + 0xc]
push eax
push str._HttpWinAsync__Got_a_login_failure_with_Negotiate.__Retrying_with_NTLM.
push ecx
push 0xc8
mov ecx, 0x30303030
call fcn.1005d1ee
push dword [edi + 0x14]
mov ecx, edi
push dword [edi + 0x34]
call fcn.1005d1ee
mov byte [edi + 0x4d], bl
mov ecx, edi
call fcn.1005d1ee
jmp 0x100aa622
call fcn.10095af0
test al, al
je 0x100aa5f2
lea eax, [edi + 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100aa5d4
mov eax, dword [eax]
mov dword [ebp + 0xc], eax
mov edx, esi
lea eax, [ebp + 0xc]
push eax
push str._HttpWinAsync__WinHttpQueryHeaders_failed.
push ecx
push 0xc8
mov ecx, 0x30303030
call fcn.1005d1ee
mov ecx, edi
call fcn.1005d1ee
lea esi, [edi + 0x94]
push edi
mov ecx, esi
call fcn.1005d1ee
mov ecx, dword [edi + 0xc8]
lea eax, [ebp - 0x58]
push eax
call fcn.1009dfe3
mov ecx, esi
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.1005d1ee
call fcn.100fb098
ret 0x10