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

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, dword [esp + 0xc]
cmp edi, 0x1c
jne 0x478018
cmp esi, 0x1010
jne case.0x478182.4099
pop esi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
jmp fcn.00477c40
cmp edi, 0x198
jne 0x4780d5
add esi, 0xffffeffd
cmp esi, 7
ja case.0x478182.4099
jmp dword [esi*4 + 0x47820c]
cmp edx, 0xfffffffe
jne 0x47804a
push eax
call fcn.0048fdf0
add esp, 4
pop esi
ret
lea ecx, [edx + 1]
cmp ecx, 2
ja 0x47815e
pop esi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
jmp fcn.0048fcf0
cmp edx, 0xfffffffe
jne 0x478074
push eax
call fcn.00490010
add esp, 4
pop esi
ret
pop esi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
jmp fcn.0048ff00
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp fcn.004902e0
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp fcn.004901d0
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp 0x490580
pop esi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
jmp fcn.00490470
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp 0x4907d0
push edx
push ecx
push eax
call fcn.004906b0
add esp, 0xc
pop esi
ret
cmp edi, 0xffffffff
jne case.0x478182.4099
cmp esi, 0x1001
jg 0x478173
je 0x478165
lea edx, [esi - 1]
cmp edx, 0xc
ja case.0x478182.4099
movzx edx, byte [edx + 0x47823c]
jmp dword [edx*4 + 0x47822c]
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp fcn.00477ed0
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp fcn.00477d40
mov eax, dword [eax + 0x1c]
cmp dword [eax], 0x390
je 0x478134
mov eax, 1
pop esi
ret
call fcn.004671d0
push str.legacy_ctrl_to_param
push 0x356
push str.cryptoevppmeth_lib.c
call fcn.00467260
push 0
push 0x96
push 6
call fcn.004673f0
add esp, 0x18
mov eax, 0xfffffffe
pop esi
ret
pop esi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
jmp fcn.0048ea30
add esi, 0xffffeffe
cmp esi, 0xa
ja case.0x478182.4099
jmp dword [esi*4 + 0x47824c]
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp fcn.0048eb60
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp fcn.0048fa70
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp fcn.0048eed0
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp fcn.0048fa70
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp fcn.0048eed0
push edx
push ecx
push eax
call fcn.0048f400
add esp, 0xc
pop esi
ret
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp fcn.0048f540
pop esi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
jmp fcn.0048f6a0
pop esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jmp fcn.0048f7c0
xor eax, eax
pop esi
ret
mov eax, 0x40
call fcn.0055bc20
push esi
mov esi, dword [esp + 0x48]
push esi
mov dword [esp + 8], 0xffffffff
call fcn.0048fc90
add esp, 4
cmp eax, 1
jne 0x49069f
cmp dword [esi + 0x18], 0
jne 0x4905d3
mov eax, dword [esp + 0x4c]
push eax
push 0
push 0x1008
push 0x1000
push 0x198
push esi
call fcn.00478280
add esp, 0x18
pop esi
add esp, 0x40
ret
lea ecx, [esp + 4]
push ecx
lea edx, [esp + 0xc]
push str.kdf_outlen
push edx
call fcn.004688b0
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x34], edx
mov eax, dword [eax + 0x10]
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x3c], eax
call fcn.00469170
mov edx, dword [eax]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x48], edx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x4c], ecx
mov edx, dword [eax + 0x10]
lea eax, [esp + 0x2c]
push eax
push esi
mov dword [esp + 0x58], edx
call fcn.00477be0
add esp, 0x18
cmp eax, 0xfffffffe
jne 0x49067c
call fcn.004671d0
push str.EVP_PKEY_CTX_get_ecdh_kdf_outlen
push 0x150
push str.cryptoecec_evp_lib.c
call fcn.00467260
push 0
push 0x93
push 6
call fcn.004673f0
add esp, 0x18
mov eax, 0xfffffffe
pop esi
add esp, 0x40
ret
cmp eax, 1
je 0x490689
or eax, 0xffffffff
pop esi
add esp, 0x40
ret
mov eax, dword [esp + 4]
cmp eax, 0x7fffffff
ja 0x490681
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
mov eax, 1
pop esi
add esp, 0x40
ret
mov eax, 0x54
call fcn.0055bc20
push esi
mov esi, dword [esp + 0x5c]
push esi
call fcn.0048fc90
add esp, 4
cmp eax, 1
jne 0x49090f
cmp dword [esi + 0x18], 0
jne 0x49081b
mov eax, dword [esp + 0x60]
push eax
push 0
push 0x100a
push 0x1000
push 0x198
push esi
call fcn.00478280
add esp, 0x18
pop esi
add esp, 0x54
ret
mov ecx, dword [esp + 0x60]
push 0
push ecx
lea edx, [esp + 0x10]
push str.kdf_ukm
push edx
call fcn.00469140
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x30], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x34], ecx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x3c], edx
mov eax, dword [eax + 0x10]
lea edx, [esp + 0x1c]
push str.kdf_ukm_len
push edx
mov dword [esp + 0x48], eax
call fcn.004688b0
mov ecx, dword [eax]
mov dword [esp + 0x4c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x50], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x54], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x58], edx
mov eax, dword [eax + 0x10]
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x60], eax
call fcn.00469170
mov edx, dword [eax]
mov dword [esp + 0x64], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x6c], edx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x70], ecx
mov edx, dword [eax + 0x10]
lea eax, [esp + 0x3c]
push eax
push esi
mov dword [esp + 0x7c], edx
call fcn.00477be0
add esp, 0x28
cmp eax, 0xfffffffe
jne 0x4908fc
call fcn.004671d0
push str.EVP_PKEY_CTX_get0_ecdh_kdf_ukm
push 0x19b
push str.cryptoecec_evp_lib.c
call fcn.00467260
push 0
push 0x93
push 6
call fcn.004673f0
add esp, 0x18
mov eax, 0xfffffffe
pop esi
add esp, 0x54
ret
cmp eax, 1
jne 0x49090c
mov eax, dword [esp + 4]
cmp eax, 0x7fffffff
jbe 0x49090f
or eax, 0xffffffff
pop esi
add esp, 0x54
ret