Function at 0x40a970
Capabilities:
Check http status code
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov esi, dword [esp + 0x70]
mov edi, dword [esi + 0x4d4]
test edi, edi
je 0x40b1c0
mov eax, dword [esp + 0x74]
mov ebp, dword [esi]
mov dword [esp + 0x44], 0
lea ebx, [esi + eax*4]
mov eax, dword [ebx + 0x194]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x401c]
cmp eax, 2
je 0x40b288
mov byte [esi + 0x272], 0
mov dword [esp + 0x34], ebx
test eax, eax
jne 0x40acba
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], str.Establish_HTTP_proxy_tunnel_to__s:_d_n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
call sym._Curl_infof
mov eax, dword [ebp + 0x11c]
mov dword [esp], eax
call dword [0x45bc90]
mov dword [ebp + 0x11c], 0
call sym._Curl_add_buffer_init
mov dword [esp + 0x28], eax
test eax, eax
je 0x40b636
mov eax, dword [esp + 0x7c]
mov dword [esp], 0x45dd52
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
call sym._curl_maprintf
mov ebx, eax
test eax, eax
je 0x40b315
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], str.CONNECT
mov dword [esp], esi
call sym._Curl_http_output_auth
mov dword [esp], ebx
mov dword [esp + 0x30], eax
call dword [0x45bc90]
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x40b208
mov edx, 0x45dd03
cmp dword [esi + 0xec], 1
mov eax, 0x45dcff
cmovne eax, edx
movzx edx, byte [esi + 0x262]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x9c]
cmp dword [esp + 0x78], eax
je 0x40b2d0
mov eax, dword [esp + 0x78]
mov dword [esp + 4], 0x3a
mov dword [esp], eax
call sym._strchr
mov ecx, 0x45dd09
mov edx, eax
mov eax, 0x45dd0b
test edx, edx
mov edx, 0x45dd07
cmove edx, eax
cmovne eax, ecx
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov dword [esp + 4], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 8], edx
mov dword [esp], str._s_s_s:_d
call sym._curl_maprintf
mov ebx, eax
test eax, eax
je 0x40b315
mov dword [esp + 4], 0x45dd6a
mov dword [esp], esi
call sym._Curl_checkProxyheaders
mov dword [esp + 0x30], 0
test eax, eax
je 0x40b2f0
mov dword [esp + 4], 0x45dd7a
mov dword [esp], esi
call sym._Curl_checkProxyheaders
mov edx, 0x45dd0c
mov dword [esp + 4], 0x45dd8b
test eax, eax
mov dword [esp], esi
mov eax, 0x45dd0b
cmove eax, edx
mov dword [esp + 0x3c], eax
call sym._Curl_checkProxyheaders
mov edx, 0x45dd0b
test eax, eax
je 0x40b380
mov eax, dword [esi + 0x2a0]
mov ecx, 0x45dd0b
test eax, eax
cmove eax, ecx
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x40b340
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
mov dword [esp], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], str.CONNECT__s_HTTP__s_r_n_s_s_s_s
call sym._Curl_add_bufferf
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call dword [0x45bc90]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x30], eax
mov dword [esp], ebx
call dword [0x45bc90]
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x40abef
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 1
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._Curl_add_custom_headers
test eax, eax
je 0x40ac50
mov dword [esp + 4], str.Failed_sending_CONNECT_to_proxy
mov dword [esp], ebp
mov dword [esp + 0x28], eax
call sym._Curl_failf
mov dword [esp], 0
call sym._Curl_add_buffer_free
mov eax, dword [esp + 0x28]
mov ecx, dword [esi]
mov edx, dword [esi + 0x4d4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
mov dword [edx + 0x401c], 2
mov dword [esp], eax
mov dword [esp + 4], str.CONNECT_phase_completed__n
call sym._Curl_infof
mov eax, dword [esp + 0x2c]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0x45dd96
mov dword [esp], eax
call sym._Curl_add_bufferf
test eax, eax
jne 0x40abef
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], 0
mov dword [esp + 4], esi
mov dword [esp + 0x10], eax
lea eax, [ebp + 0xa78]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sym._Curl_add_buffer_send
test eax, eax
jne 0x40abef
mov dword [esp], 0
call sym._Curl_add_buffer_free
mov dword [edi + 0x401c], 1
mov dword [edi + 0x4000], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], ebp
call sym._Curl_timeleft
test eax, eax
jle 0x40b610
mov eax, dword [esp + 0x74]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym._Curl_conn_data_pending
test al, al
je 0x40b572
mov eax, dword [edi + 0x4004]
test eax, eax
je 0x40ae58
lea eax, [edi + 0x4000]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x400c]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
jae 0x40b470
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x48]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 1
mov dword [esp + 4], eax
mov dword [esp], esi
call sym._Curl_read
mov ebx, eax
cmp eax, 0x51
je 0x40b258
mov dword [esp], esi
call sym._Curl_pgrsUpdate
test eax, eax
jne 0x40b4a0
test ebx, ebx
jne 0x40b428
mov eax, dword [esp + 0x48]
test eax, eax
jle 0x40b3f0
mov eax, dword [edi + 0x4004]
cmp eax, 1
jle 0x40ae28
mov edx, dword [edi + 0x4014]
mov eax, dword [edi + 0x4010]
mov dword [edi + 0x400c], edi
mov ecx, edx
or ecx, eax
je 0x40b040
add eax, 0xffffffff
adc edx, 0xffffffff
cmp ebx, eax
mov dword [edi + 0x4010], eax
sbb ebx, edx
mov dword [edi + 0x4014], edx
jl 0x40ad0a
mov dword [edi + 0x4004], 0
mov dword [edi + 0x401c], 2
mov dword [esp], esi
call sym._Curl_pgrsUpdate
test eax, eax
jne 0x40ae68
mov eax, dword [ebp + 0xa64]
sub eax, 0xc8
cmp eax, 0x63
ja 0x40b148
cmp byte [edi + 0x4020], 0
mov eax, dword [ebp + 0x11c]
jne 0x40b080
test eax, eax
je 0x40b032
cmp dword [edi + 0x401c], 2
je 0x40b018
mov eax, dword [edi + 0x401c]
jmp 0x40a9be
mov ecx, dword [edi + 0x4000]
lea edx, [ecx + 1]
mov ecx, dword [edi + 0x400c]
mov dword [edi + 0x4000], edx
cmp byte [ecx], 0xa
je 0x40ae80
add ecx, 1
mov dword [edi + 0x400c], ecx
test eax, eax
jne 0x40ad0a
lea esi, cs:[esi]
mov dword [esp], esi
call sym._Curl_pgrsUpdate
test eax, eax
je 0x40adda
mov edx, dword [esi + 0x4d4]
mov eax, 0x2a
mov ebx, dword [esi]
mov dword [esp + 0x28], ebx
jmp 0x40ac1f
cmp byte [ebp + 0x4e0], 0
jne 0x40b228
cmp byte [ebp + 0x654], 0
mov eax, dword [edi + 0x4008]
jne 0x40aed0
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
movzx eax, byte [ebp + 0x4d5]
mov dword [esp], esi
add eax, 2
mov dword [esp + 4], eax
call sym._Curl_client_write
mov ebx, eax
test eax, eax
jne 0x40b714
mov edx, dword [edi + 0x4000]
mov eax, dword [edi + 0x4008]
add dword [ebp + 0xa74], edx
add dword [ebp + 0xa0], edx
movzx ecx, byte [eax]
cmp cl, 0xd
je 0x40b178
cmp cl, 0xa
je 0x40b178
mov byte [eax + edx], 0
mov dword [esp + 8], 0x11
mov eax, dword [edi + 0x4008]
mov dword [esp], 0x45de8f
mov dword [esp + 4], eax
call sym._curl_strnequal
test eax, eax
je 0x40af24
mov eax, dword [ebp + 0xe8]
cmp eax, 0x191
je 0x40af53
mov dword [esp + 8], 0x13
mov eax, dword [edi + 0x4008]
mov dword [esp], 0x45dea1
mov dword [esp + 4], eax
call sym._curl_strnequal
test eax, eax
je 0x40afc0
mov eax, dword [ebp + 0xe8]
cmp eax, 0x197
jne 0x40afc0
cmp eax, 0x197
mov eax, dword [edi + 0x4008]
sete bl
mov dword [esp], eax
call sym._Curl_copy_header_value
test eax, eax
je 0x40b7cd
movzx ebx, bl
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 0x30], eax
call sym._Curl_http_input_auth
mov edx, dword [esp + 0x30]
mov ebx, eax
mov dword [esp], edx
call dword [0x45bc90]
test ebx, ebx
jne 0x40b714
mov dword [edi + 0x4000], 0
mov dword [edi + 0x400c], edi
mov dword [edi + 0x4008], edi
jmp 0x40b06d
mov dword [esp + 8], 0xf
mov eax, dword [edi + 0x4008]
mov dword [esp], 0x45deb5
mov dword [esp + 4], eax
call sym._curl_strnequal
test eax, eax
je 0x40b298
mov eax, dword [ebp + 0xe8]
lea edx, [eax - 0xc8]
cmp edx, 0x63
ja 0x40b4b0
mov dword [esp + 8], eax
mov dword [esp + 4], str.Ignoring_Content_Length_in_CONNECT__03d_response_n
mov dword [esp], ebp
call sym._Curl_infof
jmp 0x40af9f
mov edx, 1
mov eax, esi
call sym._connect_init
mov eax, dword [ebp + 0x11c]
test eax, eax
jne 0x40ae16
mov ebx, dword [esp + 0x34]
jmp 0x40b092
lea eax, [esp + 0x4c]
mov dword [esp + 8], 1
mov dword [esp + 0xc], eax
mov dword [esp + 4], edi
mov dword [esp], esi
mov dword [esp + 0x4c], 0
call sym._Curl_httpchunk_read
cmp eax, 0xffffffff
je 0x40b440
mov eax, dword [edi + 0x4004]
jmp 0x40ae4b
mov ebx, dword [esp + 0x34]
mov edx, dword [ebp + 0x11c]
test edx, edx
jne 0x40b6f3
mov eax, dword [ebp + 0xa64]
sub eax, 0xc8
cmp eax, 0x63
jbe 0x40b520
cmp byte [edi + 0x4020], 0
mov eax, dword [ebp + 0x11c]
je 0x40b6af
test eax, eax
je 0x40b6af
mov byte [esi + 0x272], 1
mov dword [esp + 4], str.Connect_me_again_please_n
mov dword [esp], ebp
call sym._Curl_infof
mov eax, dword [esi + 0x4d4]
mov dword [eax + 0x401c], 2
mov dword [esp + 4], str.CONNECT_phase_completed__n
mov eax, dword [esi]
mov dword [esp], eax
call sym._Curl_infof
cmp byte [esi + 0x272], 0
mov dword [edi + 0x401c], 0
jne 0x40b572
mov eax, dword [ebp + 0xe8]
mov dword [esp + 4], str.Received_HTTP_code__d_from_proxy_after_CONNECT
mov dword [esp], ebp
mov dword [esp + 8], eax
call sym._Curl_failf
mov eax, dword [esi]
mov edx, dword [esi + 0x4d4]
mov dword [esp + 0x28], eax
mov eax, 0x38
jmp 0x40ac1f
mov dword [esp], esi
call sym._Curl_http_auth_act
test eax, eax
jne 0x40b63b
cmp byte [esi + 0x259], 0
je 0x40adee
mov byte [edi + 0x4020], 1
mov ebx, dword [esp + 0x34]
jmp 0x40b084
cmp dword [ebp + 0xe8], 0x197
mov dword [edi + 0x400c], edi
mov eax, dword [edi + 0x4010]
mov edx, dword [edi + 0x4014]
je 0x40b3a0
mov dword [edi + 0x4004], 0
or eax, edx
jne 0x40ae58
mov dword [edi + 0x401c], 2
jmp 0x40ae58
xor edx, edx
mov eax, esi
call sym._connect_init
test eax, eax
jne 0x40ac45
mov ebx, dword [esp + 0x74]
mov edi, dword [esi + 0x4d4]
mov dword [esp + 0x44], 0
mov ebp, dword [esi]
lea ebx, [esi + ebx*4]
mov edx, edi
mov ecx, dword [ebx + 0x194]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ecx
test edi, edi
je 0x40ac1f
jmp 0x40a9a4
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sym._Curl_add_buffer_free
mov eax, dword [esp + 0x2c]
jmp 0x40ac13
mov dword [esp + 0xc], edx
mov eax, dword [edi + 0x4008]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], ebp
call sym._Curl_debug
mov edx, dword [edi + 0x4000]
jmp 0x40ae8d
xor eax, eax
mov edi, dword [esi + 0x4d4]
mov edx, edi
test eax, eax
jne 0x40ae73
mov edx, edi
test edi, edi
je 0x40b822
xor eax, eax
cmp dword [edi + 0x401c], 2
jne 0x40ac45
mov ebp, dword [esi]
lea esi, [esi]
mov dword [esp + 0x28], ebp
mov edx, edi
xor eax, eax
jmp 0x40ac1f
mov dword [esp + 8], 0x45defa
mov dword [esp + 4], 0x45df00
mov eax, dword [edi + 0x4008]
mov dword [esp], eax
call sym._Curl_compareheader
test al, al
je 0x40b57d
mov byte [edi + 0x4020], 1
jmp 0x40af9f
test dl, dl
mov eax, 0x45dd0b
mov edx, 0x45dd07
mov ecx, 0x45dd09
cmove edx, eax
cmovne eax, ecx
jmp 0x40aac7
mov dword [esp + 4], ebx
mov dword [esp], str.Host:__s_r_n
call sym._curl_maprintf
mov dword [esp + 0x30], eax
test eax, eax
jne 0x40ab15
mov dword [esp], ebx
call dword [0x45bc90]
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sym._Curl_add_buffer_free
mov eax, dword [esi]
mov edx, dword [esi + 0x4d4]
mov dword [esp + 0x28], eax
mov eax, 0x1b
jmp 0x40ac1f
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], 0x45dd0b
mov dword [esp + 8], ebx
mov dword [esp + 4], str.CONNECT__s_HTTP__s_r_n_s_s_s_s
mov dword [esp], eax
call sym._Curl_add_bufferf
jmp 0x40abbe
mov eax, dword [ebp + 0x5a8]
test eax, eax
je 0x40ab55
mov edx, dword [esi + 0x2a4]
jmp 0x40ab55
cmp byte [ebp + 0x8a8], 0
jne 0x40b19a
mov dword [edi + 0x4004], 2
mov ebx, edx
or ebx, eax
jne 0x40b5d1
cmp byte [edi + 0x4018], 0
jne 0x40b650
mov dword [edi + 0x4004], 0
mov dword [edi + 0x401c], 2
jmp 0x40ae58
mov ebx, dword [ebp + 0x158]
test ebx, ebx
je 0x40b4e0
mov ecx, dword [ebp + 0x8a0]
test ecx, ecx
je 0x40b4e0
mov byte [esi + 0x272], 1
mov dword [esp + 4], str.Proxy_CONNECT_connection_closed_n
mov dword [esp], ebp
call sym._Curl_infof
lea esi, cs:[esi]
mov dword [edi + 0x4004], 0
jmp 0x40ae58
mov dword [esp + 4], str.chunk_reading_DONE_n
mov dword [esp], ebp
call sym._Curl_infof
mov dword [edi + 0x4004], 0
mov dword [edi + 0x401c], 2
jmp 0x40ae58
mov dword [esp + 4], str.CONNECT_response_too_large_
mov dword [esp], ebp
call sym._Curl_failf
mov eax, dword [esi]
mov edx, dword [esi + 0x4d4]
mov dword [esp + 0x28], eax
mov eax, 0x38
jmp 0x40ac1f
mov eax, 0x2a
jmp 0x40b25a
lea eax, [edi + 0x4010]
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0
mov eax, dword [edi + 0x4008]
add eax, 0xf
mov dword [esp], eax
call sym._curlx_strtoofft
jmp 0x40af9f
mov dword [esp + 4], str.Proxy_CONNECT_aborted
mov dword [esp], ebp
call sym._Curl_failf
mov dword [edi + 0x4004], 0
mov dword [esp], esi
call sym._Curl_pgrsUpdate
test eax, eax
jne 0x40b80c
mov eax, dword [esi]
mov edx, dword [esi + 0x4d4]
mov dword [esp + 0x28], eax
mov eax, 0x38
jmp 0x40ac1f
mov dword [edi + 0x401c], 2
mov eax, dword [esi + 0x2a0]
mov dword [esp], eax
call dword [0x45bc90]
mov eax, dword [ebp + 0xa64]
mov dword [esi + 0x2a0], 0
mov byte [ebp + 0x8a4], 1
mov dword [esp + 8], eax
mov dword [esp + 4], str.Proxy_replied__d_to_CONNECT_request_n
mov dword [esp], ebp
call sym._Curl_infof
mov byte [ebp + 0x115], 0
mov byte [esi + 0x26b], 0
mov edi, dword [esi + 0x4d4]
jmp 0x40b26a
mov dword [esp + 8], 0x12
mov eax, dword [edi + 0x4008]
mov dword [esp], 0x45df0c
mov dword [esp + 4], eax
call sym._curl_strnequal
test eax, eax
je 0x40b765
mov eax, dword [ebp + 0xe8]
lea edx, [eax - 0xc8]
cmp edx, 0x63
ja 0x40b71b
mov dword [esp + 8], eax
mov dword [esp + 4], str.Ignoring_Transfer_Encoding_in_CONNECT__03d_response_n
mov dword [esp], ebp
call sym._Curl_infof
jmp 0x40af9f
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 4], str.Ignore__I64d_bytes_of_response_body_n
mov dword [esp], ebp
call sym._Curl_infof
mov eax, dword [edi + 0x4004]
mov ebx, dword [edi + 0x4014]
or ebx, dword [edi + 0x4010]
jne 0x40ae4b
mov dword [edi + 0x401c], 2
jmp 0x40ae4b
mov dword [esp + 4], str.Proxy_CONNECT_aborted_due_to_timeout
mov dword [esp], ebp
call sym._Curl_failf
mov eax, dword [esi]
mov edx, dword [esi + 0x4d4]
mov dword [esp + 0x28], eax
mov eax, 0x1c
jmp 0x40ac1f
mov eax, 0x1b
mov edx, dword [esi + 0x4d4]
jmp 0x40ae73
mov dword [esp + 4], str.Ignore_chunked_response_body_n
mov dword [esp], ebp
call sym._Curl_infof
mov eax, dword [edi + 0x4008]
mov byte [ebp + 0x115], 1
cmp byte [eax + 1], 0xa
jne 0x40b67c
add eax, 1
mov dword [edi + 0x4008], eax
add eax, 1
lea ecx, [esp + 0x48]
mov dword [esp + 8], 1
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
mov dword [esp], esi
call sym._Curl_httpchunk_read
cmp eax, 0xffffffff
je 0x40b7d7
mov eax, dword [edi + 0x4004]
jmp 0x40b5ef
mov dword [esp], eax
call dword [0x45bc90]
mov dword [ebp + 0x11c], 0
mov dword [esp + 4], 2
mov dword [esp], esi
call sym._Curl_conncontrol
mov eax, dword [ebx + 0x194]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym._Curl_closesocket
mov dword [ebx + 0x194], 0xffffffff
jmp 0x40b0fa
mov eax, dword [ebx + 0x194]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym._Curl_closesocket
mov dword [ebx + 0x194], 0xffffffff
jmp 0x40b092
mov eax, ebx
jmp 0x40b25a
mov dword [esp + 8], 0x45df55
mov dword [esp + 4], 0x45df0c
mov eax, dword [edi + 0x4008]
mov dword [esp], eax
call sym._Curl_compareheader
test al, al
je 0x40af9f
mov dword [esp + 4], str.CONNECT_responded_chunked_n
mov dword [esp], ebp
call sym._Curl_infof
mov byte [edi + 0x4018], 1
mov dword [esp], esi
call sym._Curl_httpchunk_init
jmp 0x40af9f
mov dword [esp + 8], 0x45defa
mov dword [esp + 4], 0x45df78
mov eax, dword [edi + 0x4008]
mov dword [esp], eax
call sym._Curl_compareheader
test al, al
jne 0x40b2be
lea eax, [ebp + 0xe8]
mov dword [esp + 4], str.HTTP_1._d__d
mov dword [esp + 0xc], eax
lea eax, [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x4008]
mov dword [esp], eax
call sym._sscanf.constprop.0
cmp eax, 2
jne 0x40af9f
mov eax, dword [ebp + 0xe8]
mov dword [ebp + 0xa64], eax
jmp 0x40af9f
mov eax, 0x1b
jmp 0x40b25a
mov dword [esp + 4], str.chunk_reading_DONE_n
mov dword [esp], ebp
call sym._Curl_infof
mov eax, dword [edi + 0x4010]
mov dword [edi + 0x4004], 0
mov dword [edi + 0x401c], 2
mov edx, dword [edi + 0x4014]
jmp 0x40b1a4
mov eax, dword [esi]
mov edx, dword [esi + 0x4d4]
mov dword [esp + 0x28], eax
mov eax, 0x2a
jmp 0x40ac1f
mov eax, dword [esi]
mov dword [esp + 0x28], eax
xor eax, eax
jmp 0x40ac1f