Function at 0x495800
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x4c], 0
mov dword [eax], 0
mov eax, dword [esp + 0x74]
mov dword [eax], 0
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call fcn.0043be40
lea edx, [eax + 1]
mov ecx, eax
mov dword [esp + 0x1c], eax
xor eax, eax
test esi, 0x100
mov ebx, eax
mov edi, eax
cmove ebx, edx
test esi, 0x200
cmove edi, edx
and esi, 0x400
cmove eax, edx
cmp ecx, 1
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], eax
je 0x4959ce
mov eax, ecx
sub eax, 2
mov dword [esp + 0x20], eax
js 0x4959db
mov edi, eax
mov ebp, 1
jmp 0x4958b4
cmp ebp, 1
je 0x4958f9
test ebx, ebx
jle 0x4958a8
mov eax, dword [eax + 0xc]
and ecx, 0x20
cmp ecx, 1
sbb ebx, 0
cmp eax, 0xffffffff
je 0x4958a8
cmp ebx, eax
cmovg ebx, eax
sub edi, 1
cmp edi, 0xffffffff
je 0x495940
mov eax, dword [esp + 0x78]
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0043be60
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0xffffffff
mov esi, eax
mov dword [esp], eax
call fcn.004753c0
mov dword [esp], esi
call fcn.00475c00
test eax, eax
je 0x495936
mov ecx, dword [esi + 0x28]
test ch, 8
je 0x495889
mov ebp, 0xffffffff
jmp 0x49588e
mov edx, dword [eax + 4]
test edx, edx
mov edx, 2
cmove ebp, edx
jmp 0x49588e
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov edx, dword [esp + 0x2c]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
call fcn.00495650
test eax, eax
jne 0x495d98
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00495740
xor eax, eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebp, 1
je 0x4959db
test ebx, ebx
jne 0x495969
cmp ebp, 2
jne 0x495969
mov eax, dword [esp + 0x74]
mov dword [eax], 1
add esp, 0x5c
mov eax, 0xfffffffe
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebp, 1
je 0x4959ce
cmp ebp, 2
mov eax, 1
je 0x495938
test ebp, ebp
je 0x495936
add esp, 0x5c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x30]
or dword [eax + 0x14], 2
cmp ebp, 2
jne 0x4959a2
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.0043bd20
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x30]
mov dword [eax], ecx
mov eax, dword [esp + 0x74]
mov ebx, dword [eax]
test ebx, ebx
je 0x4959ce
mov dword [esp], ecx
call fcn.004a9f80
mov dword [esp], eax
call fcn.0043be40
test eax, eax
jle 0x496046
add esp, 0x5c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0xde
mov dword [esp + 4], str.external_openssl_crypto_x509v3_pcy_tree.c
mov dword [esp], 0x18
call fcn.004273e0
test eax, eax
mov edi, eax
mov dword [esp + 0x30], eax
je 0x495936
mov esi, dword [esp + 0x1c]
mov dword [eax + 0x14], 0
mov dword [esp + 8], 0xe4
mov dword [esp + 4], str.external_openssl_crypto_x509v3_pcy_tree.c
shl esi, 4
mov dword [esp], esi
call fcn.004273e0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
test eax, eax
mov dword [edi], eax
je 0x496201
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov esi, dword [edi]
mov dword [edi + 4], ecx
mov dword [esp], 0x2ea
call fcn.00439400
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 4], eax
call fcn.00492bf0
test eax, eax
je 0x49592a
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004a9d70
test eax, eax
je 0x49592a
mov eax, dword [esp + 0x20]
test eax, eax
js 0x495bcf
mov dword [esp + 0x1c], ebx
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
jmp 0x495b09
test byte [edi + 0x28], 0x20
je 0x495bb6
test ecx, ecx
je 0x495bb6
test ebp, ebp
jne 0x495b95
or dword [esi + 0xc], 0x400
sub ecx, 1
cmp ecx, 0xffffffff
je 0x495bcb
mov eax, dword [esp + 0x78]
add esi, 0x10
mov dword [esp + 4], ecx
mov dword [esp + 0x24], ecx
mov dword [esp], eax
call fcn.0043be60
mov dword [esp], eax
mov edi, eax
call fcn.00475c00
mov dword [esp + 0x10], 0x102
mov dword [esp + 0xc], str.external_openssl_crypto_x509v3_pcy_tree.c
mov dword [esp + 8], 3
mov dword [esp + 4], 1
mov dword [esp + 0x20], eax
lea eax, [edi + 0x10]
mov dword [esp], eax
call fcn.0042aae0
mov edx, dword [esp + 0x20]
mov dword [esi], edi
mov ecx, dword [esp + 0x24]
mov eax, dword [edx]
test eax, eax
je 0x495bc2
test ebx, ebx
je 0x495adc
mov eax, dword [edi + 0x28]
and eax, 0x20
cmp eax, 1
mov eax, dword [edx + 8]
sbb ebx, 0
test eax, eax
js 0x495aee
cmp ebx, eax
cmovg ebx, eax
test ebp, ebp
je 0x495af6
mov eax, dword [edi + 0x28]
and eax, 0x20
cmp eax, 1
mov eax, dword [edx + 0x10]
sbb ebp, 0
test eax, eax
js 0x495afd
cmp ebp, eax
cmovg ebp, eax
jmp 0x495afd
or dword [esi + 0xc], 0x200
jmp 0x495aee
or dword [esi + 0xc], 0x200
jmp 0x495b69
mov ebx, dword [esp + 0x1c]
test ebx, ebx
jne 0x4961e0
mov eax, dword [esp + 0x74]
mov dword [eax], 1
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
mov ecx, eax
mov dword [esp + 0x3c], eax
add eax, 0x10
mov esi, eax
mov dword [esp + 0x34], eax
mov eax, dword [edx + 4]
cmp eax, 1
jle 0x495eb2
lea ebp, [ecx + 8]
mov dword [esp + 0x20], esi
mov dword [esp + 0x38], 1
mov esi, dword [esp + 0x20]
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00475c00
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], eax
mov eax, esi
sub eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.0043be40
cmp dword [esp + 0x28], eax
jge 0x495d1d
mov eax, dword [esp + 0x28]
xor ebx, ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.0043be60
mov dword [esp + 0x24], 0
mov esi, eax
jmp 0x495c75
add ebx, 1
mov eax, dword [ebp - 4]
mov dword [esp], eax
call fcn.0043be40
cmp ebx, eax
jge 0x495ce0
mov dword [esp + 4], ebx
mov eax, dword [ebp - 4]
mov dword [esp], eax
call fcn.0043be60
mov edi, eax
mov eax, dword [esi + 4]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.004a9e80
test eax, eax
je 0x495c72
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004a9d70
test eax, eax
je 0x49592a
mov dword [esp + 0x24], 1
jmp 0x495c72
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x495d13
mov eax, dword [ebp]
test eax, eax
je 0x495d13
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], 0
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004a9d70
test eax, eax
je 0x49592a
add dword [esp + 0x28], 1
jmp 0x495c34
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
test ah, 2
jne 0x495ddb
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax - 4]
mov dword [esp], eax
call fcn.0043be40
cmp dword [esp + 0x1c], eax
jge 0x495d9f
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax - 4]
mov dword [esp], eax
call fcn.0043be60
mov ecx, dword [esp + 0x28]
mov esi, eax
mov eax, dword [esp + 0x34]
test byte [eax + ecx - 0x13], 4
jne 0x495d8d
mov eax, dword [esi]
test byte [eax], 1
jne 0x495f58
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x495908
add dword [esp + 0x1c], 1
jmp 0x495d45
mov ebp, dword [esp + 0x24]
mov eax, dword [ebp]
test eax, eax
je 0x495dd4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], 0
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.004a9d70
test eax, eax
je 0x49592a
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x20]
test ah, 4
mov ebx, dword [ecx + 4]
jne 0x495fda
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x1c], ebp
sub esi, 0x10
mov ebx, dword [esi + 4]
mov dword [esp], ebx
call fcn.0043be40
sub eax, 1
mov ebp, eax
jns 0x495e18
jmp 0x495e4e
sub ebp, 1
cmp ebp, 0xffffffff
je 0x495e4e
mov dword [esp + 4], ebp
mov dword [esp], ebx
call fcn.0043be60
mov edx, dword [eax + 8]
test edx, edx
jne 0x495e10
mov edx, dword [eax + 4]
sub dword [edx + 8], 1
mov dword [esp], eax
call fcn.004276d0
mov dword [esp + 4], ebp
sub ebp, 1
mov dword [esp], ebx
call fcn.0043bb50
cmp ebp, 0xffffffff
jne 0x495e18
mov eax, dword [esi + 8]
test eax, eax
je 0x495e79
mov ebp, dword [eax + 8]
test ebp, ebp
jne 0x495e79
mov edx, dword [eax + 4]
test edx, edx
je 0x495e6a
sub dword [edx + 8], 1
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.004276d0
mov dword [esi + 8], 0
cmp esi, dword [edi]
jne 0x495df7
mov edi, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
test edi, edi
je 0x49602c
mov eax, dword [esp + 0x30]
add ebp, 0x10
add dword [esp + 0x38], 1
add dword [esp + 0x20], 0x10
mov eax, dword [eax + 4]
cmp dword [esp + 0x38], eax
jl 0x495c11
mov dword [esp + 0x3c], esi
mov ecx, dword [esp + 0x3c]
lea edx, [eax + 0xfffffff]
shl edx, 4
mov edx, dword [ecx + edx + 8]
test edx, edx
je 0x4961f1
mov esi, dword [esp + 0x30]
mov eax, esi
add eax, 0xc
call fcn.004956e0
test eax, eax
je 0x49592a
mov eax, dword [esi + 4]
lea ebp, [esp + 0x4c]
mov edi, dword [esi]
cmp eax, 1
jle 0x496070
mov esi, dword [edi + 8]
test esi, esi
je 0x496070
mov dword [esp + 0x1c], 1
add edi, 0x10
xor ebx, ebx
jmp 0x495f13
add ebx, 1
mov eax, dword [edi + 4]
mov dword [esp], eax
call fcn.0043be40
cmp ebx, eax
jge 0x496053
mov dword [esp + 4], ebx
mov eax, dword [edi + 4]
mov dword [esp], eax
call fcn.0043be60
cmp esi, dword [eax + 4]
jne 0x495f10
mov edx, eax
mov eax, ebp
call fcn.004956e0
test eax, eax
jne 0x495f10
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00495740
jmp 0x495936
mov edi, dword [eax + 0xc]
mov ebx, dword [esi + 8]
mov dword [esp], edi
call fcn.0043be40
cmp ebx, eax
je 0x495d98
xor ebx, ebx
jmp 0x495f75
add ebx, 1
mov dword [esp], edi
call fcn.0043be40
cmp ebx, eax
jge 0x495d98
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0043be60
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov ebp, eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.004a9d00
test eax, eax
jne 0x495f72
mov eax, dword [esp + 0x30]
mov ecx, ebp
mov edx, dword [esp + 0x2c]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
call fcn.00495650
test eax, eax
jne 0x495f72
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00495740
jmp 0x495936
mov dword [esp], ebx
call fcn.0043be40
sub eax, 1
mov esi, eax
jns 0x495ffc
jmp 0x495deb
sub esi, 1
cmp esi, 0xffffffff
je 0x495deb
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0043be60
mov edx, dword [eax]
test byte [edx], 3
je 0x495ff0
mov edx, dword [eax + 4]
sub dword [edx + 8], 1
mov dword [esp], eax
call fcn.004276d0
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0043bb50
jmp 0x495ff0
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00495740
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
test eax, eax
je 0x4959ce
add esp, 0x5c
mov eax, 0xfffffffe
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x30]
add dword [esp + 0x1c], 1
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jge 0x496070
mov esi, dword [edi + 8]
test esi, esi
jne 0x495f06
lea eax, [esp + 0x4c]
cmp ebp, eax
je 0x496212
mov eax, dword [esp + 0x30]
mov ebp, 1
mov edi, dword [eax + 0xc]
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
call fcn.0043be40
test eax, eax
jle 0x495991
mov ecx, dword [esp + 0x30]
xor ebx, ebx
mov eax, dword [ecx + 4]
mov dword [esp + 0x1c], eax
add eax, 0xfffffff
shl eax, 4
add eax, dword [ecx]
mov esi, dword [eax + 8]
jmp 0x4960e2
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0043be60
mov dword [esp], eax
call fcn.00439730
cmp eax, 0x2ea
je 0x495989
add ebx, 1
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
call fcn.0043be40
cmp ebx, eax
jl 0x4960bc
xor ebx, ebx
jmp 0x49611c
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4961bf
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0043bc20
test eax, eax
je 0x49592a
add ebx, 1
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
call fcn.0043be40
cmp ebx, eax
jge 0x495991
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0043be60
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 0x1c], eax
call fcn.004a9cb0
mov ecx, dword [esp + 0x1c]
test eax, eax
mov edx, eax
jne 0x4960f6
test esi, esi
je 0x496119
mov eax, dword [esi]
mov eax, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], 0
and eax, 0x10
mov dword [esp + 8], eax
call fcn.00492bf0
test eax, eax
je 0x49592a
mov edx, dword [esi]
mov ecx, dword [esp + 0x30]
mov edx, dword [edx + 8]
mov dword [eax], 0xc
mov dword [eax + 8], edx
mov dword [esp + 0xc], ecx
mov edx, dword [esi + 4]
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [esp + 8], edx
call fcn.004a9d70
mov edx, eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x496105
mov dword [esp + 0x1c], edx
call fcn.0043ba80
mov ecx, dword [esp + 0x30]
test eax, eax
mov dword [ecx + 0x10], eax
je 0x495991
mov edx, dword [esp + 0x1c]
jmp 0x496105
mov edx, dword [esp + 0x30]
test edx, edx
jne 0x495be1
jmp 0x4959ce
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x3c]
lea ebp, [ecx + 0xc]
jmp 0x495eea
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.004276d0
jmp 0x495936
mov edi, dword [esp + 0x4c]
mov ebp, 2
jmp 0x49608c