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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x58
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x50], 0
mov dword [ecx], 0
mov dword [edx], 0
mov dword [esp + 0x54], 0
push eax
call fcn.0045be60
add esp, 0x10
mov edi, eax
mov eax, dword [esp + 0x70]
or ah, 4
test ah, 1
mov ebp, 1
mov dword [esp + 0x3c], 0
jne 0x499a7a
lea ebx, [edi + 1]
mov dword [esp + 0x3c], ebx
test ah, 2
mov dword [esp + 0x38], 0
jne 0x499a8e
lea esi, [edi + 1]
mov dword [esp + 0x38], esi
test ah, 4
mov dword [esp + 0x34], 0
jne 0x499aa2
lea eax, [edi + 1]
mov dword [esp + 0x34], eax
cmp edi, 1
je 0x499b61
lea edx, [edi - 2]
test edx, edx
mov dword [esp + 0xc], edx
mov esi, edx
js 0x499e78
lea esi, [esi]
sub esp, 8
push esi
mov ecx, dword [esp + 0x74]
push ecx
call fcn.0045be70
add esp, 0xc
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
mov ebx, eax
call fcn.0046bcd0
mov dword [esp], ebx
call fcn.0049dd60
add esp, 0x10
test eax, eax
je 0x499e6c
mov edx, dword [ebx + 0x28]
test dh, 4
je 0x499df8
mov ebp, 0xffffffff
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jle 0x499b30
dec dword [esp + 0x3c]
and edx, 0x20
jne 0x499b30
mov eax, dword [eax + 0x10]
cmp eax, 0xffffffff
je 0x499b30
cmp eax, dword [esp + 0x3c]
jge 0x499b30
mov dword [esp + 0x3c], eax
lea esi, [esi]
lea edi, [edi]
dec esi
jns 0x499ac0
cmp ebp, 1
je 0x499e78
cmp ebp, 2
je 0x49a28b
cmp ebp, 2
mov edx, 1
je 0x499e6e
jg 0x49a265
test ebp, ebp
je 0x499e6c
mov edi, dword [esp + 0x48]
mov eax, dword [edi]
lea edx, [eax + 0x10]
cmp dword [edi + 4], 1
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 1
jle 0x499d90
mov edi, eax
sub esp, 0xc
mov eax, dword [edi + 0x10]
push eax
call fcn.0049dd60
add esp, 0x10
mov dword [esp + 0x24], eax
xor esi, esi
sub esp, 0xc
mov ebp, dword [esp + 0x30]
mov eax, dword [ebp + 4]
push eax
call fcn.0045be60
add esp, 0x10
cmp eax, esi
jle 0x499c01
lea esi, [esi]
lea edi, [edi]
sub esp, 8
push esi
mov ebx, dword [esp + 0x30]
mov ebp, dword [ebx + 4]
push ebp
call fcn.0045be70
add esp, 0x10
test byte [eax], 2
mov ebx, eax
je 0x499e20
test byte [edi + 0x1d], 2
jne 0x499e20
inc esi
sub esp, 0xc
mov ebp, dword [esp + 0x30]
mov eax, dword [ebp + 4]
push eax
call fcn.0045be60
add esp, 0x10
cmp eax, esi
jg 0x499bc0
xor ebp, ebp
test byte [edi + 0x1d], 2
jne 0x499c7a
sub esp, 0xc
mov esi, dword [edi + 4]
push esi
call fcn.0045be60
add esp, 0x10
cmp eax, ebp
jle 0x499c51
lea esi, [esi]
sub esp, 8
push ebp
mov ebx, dword [edi + 4]
push ebx
call fcn.0045be70
mov esi, dword [eax + 8]
add esp, 0x10
test esi, esi
mov ebx, eax
je 0x499fd0
sub esp, 0xc
mov esi, dword [edi + 4]
push esi
call fcn.0045be60
inc ebp
add esp, 0x10
cmp eax, ebp
jg 0x499c20
mov ebp, dword [edi + 8]
test ebp, ebp
je 0x499c7a
push 0
mov ecx, dword [edi + 8]
push ecx
mov eax, dword [esp + 0x2c]
mov edx, dword [eax]
push edx
mov ebx, dword [esp + 0x34]
push ebx
call fcn.004cffc0
add esp, 0x10
test eax, eax
je 0x499ddc
mov esi, dword [esp + 0x28]
mov ebp, dword [edi + 0x14]
sub esp, 0xc
push ebp
call fcn.0045be60
mov ebx, eax
add esp, 0x10
dec ebx
js 0x499cd0
sub esp, 8
push ebx
mov edx, dword [edi + 0x14]
push edx
call fcn.0045be70
mov edx, eax
mov eax, dword [eax]
add esp, 0x10
test byte [eax], 3
je 0x499c8f
mov ebp, dword [edx + 4]
sub esp, 0xc
dec dword [ebp + 8]
push edx
call fcn.00459050
pop eax
pop edx
push ebx
mov ecx, dword [edi + 0x14]
push ecx
call fcn.0045bb40
add esp, 0x10
dec ebx
jns 0x499c92
lea esi, [esi]
sub esi, 0x10
sub esp, 0xc
mov ebx, dword [esi + 4]
push ebx
call fcn.0045be60
mov ebx, eax
add esp, 0x10
lea esi, [esi]
lea edi, [edi]
dec ebx
js 0x499d30
sub esp, 8
push ebx
mov edx, dword [esi + 4]
push edx
call fcn.0045be70
mov edx, eax
mov eax, dword [eax + 8]
add esp, 0x10
test eax, eax
jne 0x499cf0
mov ebp, dword [edx + 4]
sub esp, 0xc
dec dword [ebp + 8]
push edx
call fcn.00459050
pop ebp
pop eax
push ebx
mov ecx, dword [esi + 4]
push ecx
call fcn.0045bb40
add esp, 0x10
dec ebx
jns 0x499cf3
lea esi, [esi]
mov eax, dword [esi + 8]
test eax, eax
je 0x499d60
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x499d60
mov eax, dword [eax + 4]
test eax, eax
je 0x499d48
dec dword [eax + 8]
sub esp, 0xc
mov eax, dword [esi + 8]
push eax
call fcn.00459050
add esp, 0x10
mov dword [esi + 8], 0
mov esi, esi
mov edx, dword [esp + 0x30]
cmp dword [edx], esi
jne 0x499cd0
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x49a3a5
inc dword [esp + 0x2c]
mov esi, dword [esp + 0x2c]
add dword [esp + 0x28], 0x10
add edi, 0x10
cmp dword [edx + 4], esi
jg 0x499b86
mov edi, dword [esp + 0x48]
mov dword [esp + 0x20], edi
mov ecx, dword [edi + 4]
mov eax, ecx
mov esi, dword [esp + 0x20]
shl eax, 4
mov edx, dword [esi]
mov ebx, dword [eax + edx - 8]
test ebx, ebx
je 0x49a07a
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
mov ecx, dword [edx + 0xc]
add esi, 0xc
test ecx, ecx
jne 0x49a299
call fcn.004cfef0
test eax, eax
mov ebp, dword [esp + 0x20]
mov dword [ebp + 0xc], eax
jne 0x49a2c6
sub esp, 0xc
mov esi, dword [esp + 0x54]
push esi
call fcn.00499920
add esp, 0x10
add esp, 0x4c
pop ebx
pop esi
xor edx, edx
pop edi
mov eax, edx
pop ebp
ret
cmp ebp, 1
jne 0x499b01
mov ebx, dword [eax + 4]
test ebx, ebx
jne 0x499b01
mov bp, 2
jmp 0x499b01
sub esp, 8
mov ecx, dword [ebx + 4]
push ecx
push edi
call fcn.004cff60
add esp, 0x10
test eax, eax
je 0x499e4f
push 0
push eax
push ebx
mov edx, dword [esp + 0x34]
push edx
call fcn.004cffc0
add esp, 0x10
test eax, eax
je 0x499ddc
inc esi
jmp 0x499bea
mov eax, dword [edi + 8]
test eax, eax
jne 0x499e34
inc esi
jmp 0x499bea
sub esp, 0xc
mov esi, dword [esp + 0x4c]
push esi
call fcn.00499920
add esp, 0x10
xor edx, edx
add esp, 0x4c
pop ebx
pop esi
pop edi
mov eax, edx
pop ebp
ret
push eax
push 0x97
push str..cryptox509v3pcy_tree.c
push 0x18
call fcn.00458d40
add esp, 0x10
test eax, eax
mov dword [esp + 0x40], eax
je 0x499e6c
mov dword [eax + 0x14], 0
push ebp
push 0x9d
mov ebp, edi
push str..cryptox509v3pcy_tree.c
shl ebp, 4
push ebp
call fcn.00458d40
add esp, 0xc
mov esi, dword [esp + 0x44]
mov dword [esi], eax
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
push ebp
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov ebx, dword [esp + 0x44]
mov dword [ebx + 4], edi
mov esi, dword [ebx]
push 0
push edi
push 0x2ea
call fcn.0046a210
pop edx
pop ecx
push eax
push 0
call fcn.004d0140
add esp, 0x10
test eax, eax
je 0x499e5c
push ebx
push 0
push eax
push esi
call fcn.004cffc0
add esp, 0x10
test eax, eax
je 0x499e5c
mov ebp, dword [esp + 0xc]
test ebp, ebp
js 0x499fa7
sub esp, 8
push ebp
mov ebx, dword [esp + 0x74]
push ebx
call fcn.0045be70
mov dword [esp], eax
mov ebx, eax
call fcn.0049dd60
mov dword [esp], 0xbc
push str..cryptox509v3pcy_tree.c
push 3
push 1
lea edx, [ebx + 0x10]
mov edi, eax
push edx
call fcn.0046fe70
mov eax, dword [edi]
add esi, 0x10
add esp, 0x20
test eax, eax
mov dword [esi], ebx
jne 0x499f73
or dword [esi + 0xc], 0x200
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x49a02e
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x499f8a
test ebp, ebp
jne 0x499f91
or dword [esi + 0xc], 0x200
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x49a057
or dword [esi + 0xc], 0x400
dec ebp
jns 0x499f2b
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
test edi, edi
mov dword [esp + 0x48], ebp
jne 0x499b61
mov ecx, dword [esp + 0x64]
mov dword [ecx], 1
jmp 0x499b61
push edx
mov esi, dword [eax]
mov eax, dword [esi]
and eax, 0x10
push eax
mov edx, dword [ebx]
mov ecx, dword [edx + 4]
push ecx
push 0
call fcn.004d0140
add esp, 0x10
test eax, eax
mov esi, eax
je 0x499ddc
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x30]
or dword [esi], 4
mov dword [esi + 8], edx
push ecx
push ebx
push esi
mov ebx, dword [esp + 0x34]
push ebx
call fcn.004cffc0
add esp, 0x10
test eax, eax
jne 0x499c3d
sub esp, 0xc
push esi
call fcn.004d00c0
add esp, 0x10
jmp 0x499ddc
mov eax, dword [edi + 0xc]
dec dword [esp + 0x38]
test eax, eax
jle 0x499f91
cmp eax, dword [esp + 0x38]
jge 0x499f91
mov edx, dword [esp + 0x34]
test edx, edx
mov dword [esp + 0x38], eax
je 0x499f9d
mov eax, dword [edi + 0x14]
dec dword [esp + 0x34]
test eax, eax
jle 0x499fa4
cmp eax, dword [esp + 0x34]
jge 0x499fa4
dec ebp
mov dword [esp + 0x34], eax
jmp 0x499fa5
mov ebp, dword [esp + 0x20]
add ebp, 0xc
mov dword [esp + 0x1c], ebp
cmp ecx, 1
mov edi, edx
mov dword [esp + 0x18], 1
jle 0x49a100
mov ebp, dword [edi + 8]
test ebp, ebp
je 0x49a100
add edi, 0x10
xor esi, esi
sub esp, 0xc
mov eax, dword [edi + 4]
push eax
call fcn.0045be60
add esp, 0x10
cmp eax, esi
jle 0x49a0ef
lea esi, [esi]
lea edi, [edi]
sub esp, 8
push esi
mov edx, dword [edi + 4]
push edx
call fcn.0045be70
add esp, 0x10
cmp dword [eax + 4], ebp
mov ebx, eax
je 0x49a20b
inc esi
sub esp, 0xc
mov eax, dword [edi + 4]
push eax
call fcn.0045be60
add esp, 0x10
cmp eax, esi
jg 0x49a0c0
inc dword [esp + 0x18]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
cmp dword [ebp + 4], esi
jg 0x49a094
lea edi, [esp + 0x44]
cmp dword [esp + 0x1c], edi
mov dword [esp + 8], 2
je 0x49a125
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x44], ecx
mov dword [esp + 8], 1
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x14], eax
sub esp, 0xc
mov ebx, dword [esp + 0x78]
push ebx
call fcn.0045be60
add esp, 0x10
test eax, eax
jle 0x49a33a
mov ebp, dword [edi + 4]
shl ebp, 4
add ebp, dword [edi]
mov esi, dword [ebp - 8]
mov dword [esp + 0x10], esi
xor ebx, ebx
jmp 0x49a181
sub esp, 8
push ebx
mov ecx, dword [esp + 0x78]
push ecx
call fcn.0045be70
mov dword [esp], eax
call fcn.0046aa20
add esp, 0x10
cmp eax, 0x2ea
je 0x49a336
inc ebx
sub esp, 0xc
mov edx, dword [esp + 0x78]
push edx
call fcn.0045be60
add esp, 0x10
cmp eax, ebx
jg 0x49a15c
xor ebp, ebp
sub esp, 0xc
mov ecx, dword [esp + 0x78]
push ecx
call fcn.0045be60
add esp, 0x10
cmp eax, ebp
jle 0x49a33a
sub esp, 8
push ebp
mov eax, dword [esp + 0x78]
push eax
call fcn.0045be70
pop ecx
pop ebx
push eax
mov ebx, dword [esp + 0x20]
push ebx
mov esi, eax
call fcn.004cff10
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x49a2df
mov edx, dword [edi + 0x10]
test edx, edx
jne 0x49a1f0
call fcn.0045b8f0
test eax, eax
mov dword [edi + 0x10], eax
je 0x49a33a
sub esp, 8
push ebx
mov esi, dword [edi + 0x10]
push esi
call fcn.0045bc00
add esp, 0x10
test eax, eax
je 0x499ddc
inc ebp
jmp 0x49a197
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jne 0x49a249
call fcn.004cfef0
test eax, eax
mov edx, dword [esp + 0x1c]
mov dword [edx], eax
je 0x499ddc
sub esp, 8
push ebx
mov ebx, dword [esp + 0x28]
mov edx, dword [ebx]
push edx
call fcn.0045bc00
add esp, 0x10
test eax, eax
je 0x499ddc
inc esi
jmp 0x49a0dc
sub esp, 8
push ebx
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
push eax
call fcn.0045bfe0
add esp, 0x10
inc eax
je 0x49a228
inc esi
jmp 0x49a0dc
cmp ebp, 5
je 0x499fbb
cmp ebp, 6
jne 0x499b61
mov ebx, dword [esp + 0x64]
mov edx, 0xfffffffe
mov dword [ebx], 1
jmp 0x499e6e
mov edi, dword [esp + 0x3c]
test edi, edi
jne 0x499b45
jmp 0x49a277
sub esp, 8
push ebx
mov edi, dword [esp + 0x2c]
mov eax, dword [edi + 0xc]
push eax
call fcn.0045bfe0
add esp, 0x10
inc eax
je 0x49a2c6
lea ecx, [esp + 0x44]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov edx, dword [esi]
mov ecx, dword [esi + 4]
jmp 0x49a085
sub esp, 8
push ebx
mov ebx, dword [esi]
push ebx
call fcn.0045bc00
add esp, 0x10
test eax, eax
je 0x499ddc
jmp 0x49a2b0
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x49a208
push eax
mov eax, dword [esp + 0x14]
mov ebx, dword [eax]
mov edx, dword [ebx]
and edx, 0x10
push edx
push esi
push 0
call fcn.004d0140
add esp, 0x10
test eax, eax
mov edx, eax
je 0x499ddc
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
mov ebx, dword [eax + 8]
mov dword [edx + 8], ebx
mov dword [edx], 0xc
push edi
mov esi, dword [ecx + 4]
push esi
push edx
push 0
call fcn.004cffc0
mov ebx, eax
add esp, 0x10
jmp 0x49a1d9
or dword [edi + 0x14], 2
cmp dword [esp + 8], 2
je 0x49a393
mov eax, dword [esp + 0x48]
test eax, eax
je 0x49a350
mov ebp, dword [esp + 0x60]
mov dword [ebp], eax
mov eax, dword [esp + 0x64]
mov ebx, dword [eax]
test ebx, ebx
jne 0x49a364
mov edx, 1
jmp 0x499e6e
sub esp, 0xc
mov edx, dword [esp + 0x54]
push edx
call fcn.004cfdd0
mov dword [esp], eax
call fcn.0045be60
add esp, 0x10
test eax, eax
mov edx, 0xfffffffe
jle 0x499e6e
mov edx, 1
jmp 0x499e6e
sub esp, 0xc
mov edi, dword [esp + 0x50]
push edi
call fcn.0045b810
add esp, 0x10
jmp 0x49a341
sub esp, 0xc
mov ebx, dword [esp + 0x54]
push ebx
call fcn.00499920
add esp, 0x10
mov ebp, dword [esp + 0x64]
mov edx, dword [ebp]
cmp edx, 1
sbb edi, edi
and edi, 3
lea edx, [edi - 2]
jmp 0x499e6e