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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xec
mov eax, dword [esp + 0x108]
test byte [eax + 0x10], 4
mov esi, dword [esp + 0x10c]
jne 0x4cf9f8
test byte [esi + 0x10], 4
je 0x4cfe22
mov edx, dword [esi + 4]
test edx, edx
je 0x4cfe00
sub esp, 0xc
mov eax, dword [esp + 0x11c]
push eax
call sym._BN_CTX_start
pop ebp
mov ebp, dword [esp + 0x11c]
push ebp
call sym._BN_CTX_get
pop ebx
mov edi, dword [esp + 0x11c]
mov dword [esp + 0x84], eax
push edi
call sym._BN_CTX_get
pop edx
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x80], eax
push ebx
call sym._BN_CTX_get
add esp, 0x10
mov ecx, dword [esp + 0x100]
test ecx, ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], ecx
je 0x4d03c2
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x4d02b0
mov ebx, dword [esp + 0x6c]
test ebx, ebx
je 0x4d02b0
sub esp, 0xc
push esi
call sym._BN_num_bits
add esp, 0x10
test eax, eax
mov edx, eax
js 0x4d02ca
and edx, 0xffffffe0
sub eax, edx
mov ebx, 0x20
sub ebx, eax
push ebp
push ebx
push esi
mov edi, dword [esp + 0x7c]
push edi
call sym._BN_lshift
add esp, 0x10
test eax, eax
je 0x4d02b0
mov ecx, dword [esp + 0x70]
add ebx, 0x20
mov dword [esp + 0x14], ebx
mov dword [ecx + 0xc], 0
push ebx
mov edx, dword [esp + 0x18]
push edx
mov eax, dword [esp + 0x110]
push eax
mov ebp, dword [esp + 0x80]
push ebp
call sym._BN_lshift
add esp, 0x10
test eax, eax
je 0x4d02b0
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov edi, dword [eax + 4]
lea ebx, [edi + 1]
mov edx, dword [ebp + 4]
cmp edx, ebx
mov dword [ebp + 0xc], 0
jle 0x4d02d2
mov ecx, dword [esp + 0x74]
lea eax, [edx + 1]
mov ebx, dword [ecx + 8]
cmp eax, ebx
jg 0x4d045a
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x4d02b0
mov eax, dword [esp + 0x74]
mov ecx, dword [eax]
mov dword [ecx + edx*4], 0
inc edx
mov dword [eax + 4], edx
mov edi, dword [esp + 0x70]
mov ebp, dword [edi + 4]
mov edi, edx
sub edi, ebp
lea eax, [ecx + edi*4]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x70]
sub ebx, edi
mov dword [esp + 0x58], ebp
mov eax, dword [ecx]
mov dword [esp + 0xa8], ebx
cmp dword [esp + 0x58], 1
mov ebx, dword [eax + ebp*4 - 4]
mov dword [esp + 0xac], 0
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], 0
je 0x4cfb9b
mov ebp, dword [esp + 0x58]
mov ebx, dword [eax + ebp*4 - 8]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x74]
mov eax, dword [esi + 0xc]
mov ecx, dword [ebx]
mov esi, dword [esp + 0x108]
xor eax, dword [esi + 0xc]
lea edx, [ecx + edx*4 - 4]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 0xc], eax
lea eax, [edi + 1]
cmp eax, dword [ecx + 8]
mov dword [esp + 0x64], edx
jg 0x4d041b
mov ebp, dword [esp + 0x6c]
test ebp, ebp
je 0x4d02b0
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
mov ebp, dword [esp + 0x58]
lea ebx, [edi - 1]
inc ebp
lea edi, [eax + edi*4 - 4]
mov eax, dword [esp + 0x78]
cmp ebp, dword [eax + 8]
mov dword [esp + 0x2c], ebx
mov edx, ebx
mov dword [ecx + 4], ebx
mov dword [esp + 0x68], edi
mov dword [esp + 0x28], ebp
jg 0x4d0439
mov ebp, dword [esp + 0x78]
test ebp, ebp
je 0x4d02b0
test edx, edx
jne 0x4d042f
mov edx, dword [esp + 0x6c]
mov dword [edx + 0xc], 0
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x10], 0
jle 0x4cfd41
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x64]
mov ebx, dword [ecx]
cmp ebx, dword [esp + 0x60]
mov esi, dword [ecx - 4]
mov dword [esp + 0x54], 0xffffffff
je 0x4cfcbe
mov eax, esi
mov edx, ebx
div dword [esp + 0x60]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x5c]
mov ebp, edx
mul dword [esp + 0x54]
mov esi, eax
mov eax, dword [esp + 0x64]
mov edi, edx
xor ebx, ebx
mov edx, dword [eax - 8]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ebx
jmp 0x4cfc98
sub esi, dword [esp + 0x18]
sbb edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
xor eax, eax
mov ecx, dword [esp + 0x48]
or ebx, ebp
or ecx, eax
cmp ebx, edi
jb 0x4cfcb0
ja 0x4cfcbe
cmp ecx, esi
jae 0x4cfcbe
add ebp, dword [esp + 0x60]
dec dword [esp + 0x54]
cmp ebp, dword [esp + 0x60]
jae 0x4cfc90
mov ebx, dword [esp + 0x54]
push ebx
mov ecx, dword [esp + 0x5c]
push ecx
mov edi, dword [esp + 0x78]
mov esi, dword [edi]
push esi
mov eax, dword [esp + 0x84]
mov ebp, dword [eax]
push ebp
call sym._bn_mul_words
add esp, 0x10
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0xa0]
mov edx, dword [ecx]
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x28]
sub esi, 4
mov dword [esp + 0xa0], esi
mov dword [edx + ebp*4], eax
push ebx
mov edi, dword [ecx]
push edi
push esi
push esi
call sym._bn_sub_words
add esp, 0x10
test eax, eax
jne 0x4d0331
inc dword [esp + 0x10]
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x10]
mov dword [ebx], edx
sub dword [esp + 0x64], 4
sub ebx, 4
cmp dword [esp + 0x2c], ecx
mov dword [esp + 0x68], ebx
jg 0x4cfc47
mov edx, dword [esp + 0x74]
mov ecx, dword [edx + 4]
test ecx, ecx
jle 0x4cfd6b
mov ebp, dword [edx]
lea edx, [ebp + ecx*4 - 4]
mov esi, dword [edx]
sub edx, 4
test esi, esi
jne 0x4cfd6b
lea eax, [ecx - 1]
mov edi, dword [esp + 0x74]
test eax, eax
mov dword [edi + 4], eax
mov ecx, eax
jg 0x4cfd52
mov ecx, dword [esp + 0x104]
test ecx, ecx
je 0x4cfdac
mov edi, dword [esp + 0x108]
mov ebx, dword [edi + 0xc]
push eax
mov eax, dword [esp + 0x18]
push eax
mov esi, dword [esp + 0x7c]
push esi
mov ebp, dword [esp + 0x110]
push ebp
call sym._BN_rshift
add esp, 0x10
mov eax, dword [esp + 0x104]
mov edx, dword [eax + 4]
test edx, edx
je 0x4cfdac
mov dword [eax + 0xc], ebx
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx + 4]
test ecx, ecx
jle 0x4cfdd6
mov ebx, dword [edx]
lea edx, [ebx + ecx*4 - 4]
mov ebp, dword [edx]
sub edx, 4
test ebp, ebp
jne 0x4cfdd6
lea esi, [ecx - 1]
test esi, esi
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], esi
mov ecx, esi
jg 0x4cfdbd
sub esp, 0xc
mov edx, dword [esp + 0x11c]
push edx
call sym._BN_CTX_end
add esp, 0x10
mov eax, 1
mov esi, esi
mov edx, eax
add esp, 0xec
pop ebx
pop esi
pop edi
mov eax, edx
pop ebp
ret
sub esp, 0xc
push 0x1ab
push str..crypto_bn_bn_div.c
push 0x67
push 0x8a
push 3
call sym._ERR_put_error
add esp, 0x20
xor eax, eax
jmp 0x4cfdf0
mov edi, dword [esi + 4]
test edi, edi
je 0x4d0280
sub esp, 8
push esi
mov ebx, dword [esp + 0x114]
push ebx
call sym._BN_ucmp
add esp, 0x10
test eax, eax
js 0x4d0368
sub esp, 0xc
mov ecx, dword [esp + 0x11c]
push ecx
call sym._BN_CTX_start
pop ebp
mov ebp, dword [esp + 0x11c]
push ebp
call sym._BN_CTX_get
mov dword [esp + 0xa8], eax
pop ebx
mov ebx, dword [esp + 0x11c]
push ebx
call sym._BN_CTX_get
mov dword [esp + 0xa4], eax
pop edx
mov edi, dword [esp + 0x11c]
push edi
call sym._BN_CTX_get
mov dword [esp + 0xa0], eax
add esp, 0x10
mov edi, dword [esp + 0x100]
test edi, edi
je 0x4d04bc
mov eax, dword [esp + 0x90]
test eax, eax
je 0x4d0317
test edi, edi
je 0x4d0317
sub esp, 0xc
push esi
call sym._BN_num_bits
test eax, eax
mov edx, eax
js 0x4d04b4
and edx, 0xffffffe0
sub eax, edx
mov ebx, 0x20
add esp, 0xc
sub ebx, eax
push ebx
push esi
mov ebp, dword [esp + 0x9c]
push ebp
call sym._BN_lshift
add esp, 0x10
test eax, eax
je 0x4d0317
mov ebp, dword [esp + 0x90]
add ebx, 0x20
mov dword [esp + 0xc], ebx
mov dword [ebp + 0xc], 0
push eax
mov edx, dword [esp + 0x10]
push edx
mov ecx, dword [esp + 0x110]
push ecx
mov ebx, dword [esp + 0xa0]
push ebx
call sym._BN_lshift
add esp, 0x10
test eax, eax
je 0x4d0317
mov eax, dword [esp + 0x94]
mov ebx, dword [ebp + 4]
mov edx, dword [eax + 4]
mov dword [esp + 0x7c], ebx
mov ebx, edx
sub ebx, dword [esp + 0x7c]
mov ecx, eax
mov dword [eax + 0xc], 0
mov eax, dword [eax]
lea ebp, [eax + ebx*4]
mov eax, dword [ecx + 8]
sub eax, ebx
mov dword [esp + 0xc0], ebp
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0xc8], eax
mov eax, dword [ecx]
mov dword [esp + 0xc4], ebp
cmp dword [esp + 0x7c], 1
mov ebp, dword [eax + ebp*4 - 4]
mov dword [esp + 0xcc], 0
mov dword [esp + 0x84], ebp
mov dword [esp + 0x80], 0
je 0x4cffbb
mov ecx, dword [esp + 0x7c]
mov ebp, dword [eax + ecx*4 - 8]
mov dword [esp + 0x80], ebp
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x108]
xor eax, dword [esi + 0xc]
mov ebp, dword [esp + 0x94]
mov ecx, dword [ebp]
mov dword [edi + 0xc], eax
lea eax, [ebx + 1]
lea edx, [ecx + edx*4 - 4]
cmp eax, dword [edi + 8]
mov dword [esp + 0x88], edx
jg 0x4d04d6
test edi, edi
je 0x4d0317
mov ecx, dword [esp + 0x7c]
inc ecx
mov esi, dword [edi]
mov ebp, dword [esp + 0x98]
lea eax, [esi + ebx*4 - 4]
cmp ecx, dword [ebp + 8]
mov dword [edi + 4], ebx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x30], ecx
jg 0x4d04f7
mov edx, dword [esp + 0x98]
test edx, edx
je 0x4d0317
sub esp, 8
mov ebp, dword [esp + 0x98]
push ebp
lea ecx, [esp + 0xcc]
push ecx
call sym._BN_ucmp
add esp, 0x10
test eax, eax
js 0x4d050b
mov eax, dword [esp + 0x7c]
push eax
mov ebp, dword [esp + 0x94]
mov ecx, dword [ebp]
push ecx
mov edx, dword [esp + 0xc8]
push edx
mov esi, dword [esp + 0xcc]
push esi
call sym._bn_sub_words
mov eax, dword [esp + 0x9c]
mov dword [eax], 1
add esp, 0x10
mov eax, dword [edi + 4]
test eax, eax
jne 0x4d04ea
mov dword [edi + 0xc], 0
dec ebx
cmp ebx, 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x34], ebx
jle 0x4d01ef
mov edi, dword [esp + 0x80]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x88]
mov ebx, dword [edx]
cmp ebx, dword [esp + 0x84]
mov esi, dword [edx - 4]
mov dword [esp + 0x44], 0xffffffff
je 0x4d0154
mov eax, esi
mov edx, ebx
div dword [esp + 0x84]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x80]
mov ebp, edx
mov ecx, dword [esp + 0x88]
mul dword [esp + 0x44]
mov esi, eax
xor ebx, ebx
mov eax, dword [ecx - 8]
mov edi, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ebx
jmp 0x4d0128
sub esi, dword [esp + 0x20]
sbb edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
xor eax, eax
mov ecx, dword [esp + 0x38]
or ebx, ebp
or ecx, eax
cmp ebx, edi
jb 0x4d0140
ja 0x4d0154
cmp ecx, esi
jae 0x4d0154
add ebp, dword [esp + 0x84]
dec dword [esp + 0x44]
cmp ebp, dword [esp + 0x84]
jae 0x4d0120
mov ebx, dword [esp + 0x44]
push ebx
mov ecx, dword [esp + 0x80]
push ecx
mov edi, dword [esp + 0x98]
mov esi, dword [edi]
push esi
mov eax, dword [esp + 0xa4]
mov ebp, dword [eax]
push ebp
call sym._bn_mul_words
mov ecx, dword [esp + 0xa8]
mov esi, dword [esp + 0xd0]
mov edx, dword [ecx]
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x40]
sub esi, 4
mov dword [esp + 0xd0], esi
mov dword [edx + ebp*4], eax
push ebx
mov edi, dword [ecx]
push edi
push esi
push esi
call sym._bn_sub_words
add esp, 0x20
test eax, eax
jne 0x4d03de
inc dword [esp + 0x9c]
mov ebx, dword [esp + 0x8c]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x9c]
mov dword [ebx], edx
sub dword [esp + 0x88], 4
sub ebx, 4
cmp dword [esp + 0x34], ecx
mov dword [esp + 0x8c], ebx
jg 0x4d00c2
mov edx, dword [esp + 0x94]
mov ecx, dword [edx + 4]
test ecx, ecx
jle 0x4d021f
mov ebp, dword [edx]
lea edx, [ebp + ecx*4 - 4]
mov eax, dword [edx]
sub edx, 4
test eax, eax
jne 0x4d021f
lea esi, [ecx - 1]
mov edi, dword [esp + 0x94]
test esi, esi
mov dword [edi + 4], esi
mov ecx, esi
jg 0x4d0203
mov ecx, dword [esp + 0x104]
test ecx, ecx
je 0x4d0263
mov edi, dword [esp + 0x108]
mov ebx, dword [edi + 0xc]
push eax
mov esi, dword [esp + 0x10]
push esi
mov eax, dword [esp + 0x9c]
push eax
mov ebp, dword [esp + 0x110]
push ebp
call sym._BN_rshift
add esp, 0x10
mov eax, dword [esp + 0x104]
mov edx, dword [eax + 4]
test edx, edx
je 0x4d0263
mov dword [eax + 0xc], ebx
sub esp, 0xc
mov ebx, dword [esp + 0x11c]
push ebx
call sym._BN_CTX_end
mov edx, 1
add esp, 0x10
jmp 0x4cfdf2
sub esp, 0xc
push 0xca
push str..crypto_bn_bn_div.c
push 0x67
push 0x6b
push 3
call sym._ERR_put_error
add esp, 0x20
add esp, 0xec
pop ebx
pop esi
xor edx, edx
pop edi
mov eax, edx
pop ebp
ret
sub esp, 0xc
mov eax, dword [esp + 0x11c]
push eax
call sym._BN_CTX_end
add esp, 0x10
xor eax, eax
jmp 0x4cfdf0
lea edx, [eax + 0x1f]
jmp 0x4cfa93
lea eax, [edi + 2]
mov ebx, dword [ebp + 8]
cmp eax, ebx
jg 0x4d047e
mov ebp, dword [esp + 0x74]
test ebp, ebp
je 0x4d02b0
mov eax, edx
lea edx, [edi + 2]
cmp edx, eax
jle 0x4d04a9
mov ebp, dword [esp + 0x74]
mov ecx, dword [ebp]
mov dword [ecx + eax*4], 0
inc eax
cmp edx, eax
jg 0x4d02fc
lea edx, [edi + 2]
mov edi, dword [esp + 0x74]
mov dword [edi + 4], edx
jmp 0x4cfb3e
sub esp, 0xc
mov ecx, dword [esp + 0x11c]
push ecx
call sym._BN_CTX_end
xor edx, edx
add esp, 0x10
jmp 0x4cfdf2
dec dword [esp + 0x54]
push ebp
mov eax, dword [esp + 0x74]
mov esi, dword [eax]
push esi
mov ebp, dword [esp + 0xa8]
push ebp
mov edx, dword [esp + 0xac]
push edx
call sym._bn_add_words
add esp, 0x10
test eax, eax
je 0x4cfd19
mov edi, dword [esp + 0x64]
inc dword [edi]
jmp 0x4cfd19
mov ebp, dword [esp + 0x104]
test ebp, ebp
je 0x4d0398
sub esp, 8
mov ecx, dword [esp + 0x110]
push ecx
mov esi, dword [esp + 0x110]
push esi
call sym._BN_copy
add esp, 0x10
xor edx, edx
test eax, eax
je 0x4cfdf2
mov edx, dword [esp + 0x100]
test edx, edx
je 0x4d03b8
sub esp, 8
push 0
mov eax, dword [esp + 0x10c]
push eax
call sym._BN_set_word
add esp, 0x10
mov edx, 1
jmp 0x4cfdf2
sub esp, 0xc
mov edx, dword [esp + 0x11c]
push edx
call sym._BN_CTX_get
add esp, 0x10
mov dword [esp + 0x6c], eax
jmp 0x4cfa65
dec dword [esp + 0x44]
push ebp
mov esi, dword [esp + 0x94]
mov eax, dword [esi]
push eax
mov ebp, dword [esp + 0xc8]
push ebp
mov edx, dword [esp + 0xcc]
push edx
call sym._bn_add_words
add esp, 0x10
test eax, eax
je 0x4d01b8
mov edi, dword [esp + 0x88]
inc dword [edi]
jmp 0x4d01b8
sub esp, 8
push eax
push ecx
call sym._bn_expand2
add esp, 0x10
test eax, eax
jmp 0x4cfbcf
sub dword [esp + 0x68], 4
jmp 0x4cfc24
sub esp, 8
push ebp
push eax
call sym._bn_expand2
add esp, 0x10
test eax, eax
je 0x4d02b0
mov edi, dword [esp + 0x6c]
mov edx, dword [edi + 4]
jmp 0x4cfc11
sub esp, 8
push eax
push ecx
call sym._bn_expand2
add esp, 0x10
test eax, eax
je 0x4d02b0
mov ebp, dword [esp + 0x74]
mov edx, dword [ebp + 4]
mov ebx, dword [ebp + 8]
jmp 0x4cfb2d
sub esp, 8
push eax
push ebp
call sym._bn_expand2
add esp, 0x10
test eax, eax
je 0x4d02b0
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edi, dword [edx + 4]
mov ebx, dword [ecx + 8]
mov edx, dword [ecx + 4]
jmp 0x4d02e8
mov eax, dword [esp + 0x74]
mov ecx, dword [eax]
jmp 0x4d0308
lea edx, [eax + 0x1f]
jmp 0x4cfed4
sub esp, 0xc
mov edx, dword [esp + 0x11c]
push edx
call sym._BN_CTX_get
mov edi, eax
add esp, 0x10
jmp 0x4cfeaa
sub esp, 8
push eax
push edi
call sym._bn_expand2
add esp, 0x10
test eax, eax
jmp 0x4cffee
sub dword [esp + 0x8c], 4
jmp 0x4d0096
sub esp, 8
push ecx
push ebp
call sym._bn_expand2
add esp, 0x10
test eax, eax
jmp 0x4d0026
mov eax, dword [edi + 4]
dec eax
mov dword [edi + 4], eax
jmp 0x4d0087