Function at 0x4a87f0
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 ecx, dword [eax]
mov edx, dword [esp + 0x74]
cmp ecx, dword [edx]
mov edi, dword [esp + 0x78]
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
je 0x4a88c0
sub esp, 0xc
push 0x160
push str..cryptoecec_mult.c
push 0x65
push 0xbb
push 0x10
call fcn.0045d0e0
xor eax, eax
add esp, 0x20
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
test edi, edi
je 0x4a8c28
xor edx, edx
cmp edx, ebp
jae 0x4a88e7
mov esi, esi
mov ebx, dword [esp + 0x80]
mov eax, dword [ebx + edx*4]
cmp ecx, dword [eax]
jne 0x4a8e09
inc edx
cmp edx, ebp
jb 0x4a88d0
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x4a8e43
test edi, edi
je 0x4a8960
sub esp, 0xc
mov edx, dword [esp + 0x7c]
push edx
call fcn.004742a0
mov dword [esp + 0x60], eax
add esp, 0x10
test eax, eax
je 0x4a8e61
push 0x4a8540
push 0x4a84c0
push 0x4a8490
mov eax, dword [esp + 0x7c]
mov esi, dword [eax + 0x44]
push esi
call fcn.00474a00
mov dword [esp + 0x28], eax
add esp, 0x10
test eax, eax
je 0x4a8948
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x4a8c4a
mov dword [esp + 0x18], 0
mov dword [esp + 0x40], 1
mov dword [esp + 0x14], 1
mov ebx, dword [esp + 0x40]
add ebx, ebp
mov dword [esp + 0x48], ebx
push esi
push 0x1a6
mov esi, ebx
shl esi, 2
push str..cryptoecec_mult.c
push esi
call fcn.00457fd0
mov dword [esp + 0x44], eax
add esp, 0xc
push 0x1a7
push str..cryptoecec_mult.c
push esi
call fcn.00457fd0
mov dword [esp + 0x3c], eax
add esp, 0xc
push 0x1a8
push str..cryptoecec_mult.c
lea eax, [esi + 4]
push eax
call fcn.00457fd0
mov dword [esp + 0x40], eax
add esp, 0xc
push 0x1a9
push str..cryptoecec_mult.c
push esi
call fcn.00457fd0
mov dword [esp + 0x2c], eax
add esp, 0x10
mov edx, dword [esp + 0x34]
test edx, edx
je 0x4a8cf0
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a8cf0
mov edx, dword [esp + 0x30]
test edx, edx
je 0x4a8cf0
test eax, eax
je 0x4a8cf0
mov esi, dword [esp + 0x14]
add esi, ebp
mov eax, dword [esp + 0x30]
xor ebx, ebx
cmp esi, 0
mov dword [eax], 0
mov dword [esp + 0x24], 0
mov dword [esp + 4], esi
jbe 0x4a8aeb
mov esi, dword [esp + 0x2c]
lea esi, [esi]
lea edi, [edi]
cmp ebx, ebp
jae 0x4a8e00
sub esp, 0xc
mov edx, dword [esp + 0x90]
mov ecx, dword [edx + ebx*4]
push ecx
call fcn.00476720
add esp, 0x10
cmp eax, 0x7cf
mov edx, 6
ja 0x4a8a80
cmp eax, 0x31f
mov dl, 5
ja 0x4a8a80
cmp eax, 0x12b
mov dl, 4
ja 0x4a8a80
cmp eax, 0x45
mov dl, 3
jbe 0x4a8e16
mov esi, esi
lea edi, [edi]
mov eax, dword [esp + 0x34]
lea ecx, [edx - 1]
mov dword [eax + ebx*4], edx
mov eax, 1
shl eax, cl
add dword [esp + 0x24], eax
mov ecx, dword [esp + 0x30]
sub esp, 0xc
cmp ebx, ebp
mov dword [ecx + ebx*4 + 4], 0
mov eax, edi
jae 0x4a8ab4
mov ecx, dword [esp + 0x90]
mov eax, dword [ecx + ebx*4]
push esi
call fcn.004a85e0
mov edx, dword [esp + 0x40]
add esp, 0x10
test eax, eax
mov dword [edx + ebx*4], eax
je 0x4a8cf0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + ebx*4]
cmp eax, dword [esp + 0x28]
jbe 0x4a8add
mov dword [esp + 0x28], eax
inc ebx
add esi, 4
cmp dword [esp + 4], ebx
ja 0x4a8a30
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x4a8b8e
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4a8f88
mov eax, dword [esp + 0x14]
test eax, eax
mov dword [esp + 0x58], 0
jne 0x4a8f7b
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x34]
sub esp, 0xc
mov edx, dword [esi + 0xc]
lea ecx, [esp + 0x64]
mov dword [ebx + ebp*4], edx
mov eax, edi
push ecx
call fcn.004a85e0
mov dword [esp + 0x1c], eax
add esp, 0x10
test eax, eax
je 0x4a8cf0
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x28]
ja 0x4a8e75
mov edi, dword [esp + 0x2c]
mov dword [edi + ebp*4], eax
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x30]
lea ebx, [ebp + 1]
mov ecx, dword [esp + 0xc]
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x48], ebx
mov dword [edx + ebp*4], ecx
mov dword [edx + ebp*4 + 4], 0
jbe 0x4a8b80
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x1c]
mov dword [esi + ebp*4], eax
push eax
push 0x236
push str..cryptoecec_mult.c
mov edi, dword [esp + 0x30]
lea esi, [edi*4 + 4]
push esi
call fcn.00457fd0
mov dword [esp + 0x30], eax
add esp, 0x10
test eax, eax
je 0x4a8cf0
mov edx, dword [esp + 0x24]
xor edi, edi
mov dword [eax + edx*4], 0
mov ebx, eax
cmp dword [esp + 4], 0
jbe 0x4a8e23
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + edi*4]
dec ecx
mov eax, 1
mov esi, dword [esp + 0x1c]
shl eax, cl
mov dword [esi + edi*4], ebx
xor esi, esi
cmp eax, 0
jbe 0x4a8c21
sub esp, 0xc
mov eax, dword [esp + 0x7c]
push eax
call fcn.00473a80
add esp, 0x10
test eax, eax
mov dword [ebx], eax
je 0x4a8cf0
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + edi*4]
dec ecx
mov edx, 1
inc esi
shl edx, cl
add ebx, 4
cmp edx, esi
ja 0x4a8bf0
inc edi
cmp dword [esp + 4], edi
jmp 0x4a8bcd
test ebp, ebp
jne 0x4a88c8
sub esp, 8
mov esi, dword [esp + 0x7c]
push esi
mov ebx, dword [esp + 0x7c]
push ebx
call fcn.00474c70
add esp, 0x10
jmp 0x4a88ad
mov ecx, dword [esp + 0x88]
push ecx
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x10]
mov esi, dword [eax]
push esi
mov edx, dword [esp + 0x58]
push edx
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.00474630
add esp, 0x10
test eax, eax
jne 0x4a8948
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 4]
mov dword [esp + 0x44], esi
sub esp, 0xc
push edi
call fcn.00476720
xor edx, edx
div dword [esp + 0x54]
inc eax
mov edx, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov eax, dword [edx + 8]
add esp, 0x10
cmp eax, dword [esp + 0x40]
jae 0x4a8ca9
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx + 0xc]
dec ecx
mov dword [esp + 0x3c], 1
shl dword [esp + 0x3c], cl
imul eax, dword [esp + 0x3c]
cmp dword [ebx + 0x14], eax
je 0x4a8960
sub esp, 0xc
push 0x197
push str..cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call fcn.0045d0e0
add esp, 0x20
lea esi, [esi]
mov edi, dword [esp + 0x54]
test edi, edi
je 0x4a8d08
sub esp, 0xc
mov esi, dword [esp + 0x60]
push esi
call fcn.00478e20
add esp, 0x10
mov ebp, dword [esp + 0x4c]
test ebp, ebp
je 0x4a8d20
sub esp, 0xc
mov ebx, dword [esp + 0x58]
push ebx
call fcn.00473660
add esp, 0x10
mov edx, dword [esp + 0x34]
test edx, edx
je 0x4a8d38
sub esp, 0xc
mov eax, dword [esp + 0x40]
push eax
call fcn.004582e0
add esp, 0x10
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a8d50
sub esp, 0xc
mov edi, dword [esp + 0x38]
push edi
call fcn.004582e0
add esp, 0x10
mov esi, dword [esp + 0x30]
test esi, esi
je 0x4a8d97
mov ebx, dword [esp + 0x30]
mov ebp, dword [ebx]
test ebp, ebp
je 0x4a8d87
lea esi, [esi]
lea edi, [edi]
sub esp, 0xc
mov edx, dword [ebx]
push edx
call fcn.004582e0
add ebx, 4
add esp, 0x10
mov ebp, dword [ebx]
test ebp, ebp
jne 0x4a8d70
sub esp, 0xc
mov ebx, dword [esp + 0x3c]
push ebx
call fcn.004582e0
add esp, 0x10
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4a8dd7
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx]
test ecx, ecx
je 0x4a8dc7
lea esi, [esi]
sub esp, 0xc
mov edi, dword [ebx]
push edi
call fcn.004737e0
add ebx, 4
add esp, 0x10
mov ecx, dword [ebx]
test ecx, ecx
jne 0x4a8db0
sub esp, 0xc
mov esi, dword [esp + 0x2c]
push esi
call fcn.004582e0
add esp, 0x10
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x4a8def
sub esp, 0xc
mov edx, dword [esp + 0x28]
push edx
call fcn.004582e0
add esp, 0x10
mov eax, dword [esp + 0x10]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
sub esp, 0xc
push edi
jmp 0x4a8a46
sub esp, 0xc
push 0x16d
jmp 0x4a8895
cmp eax, 0x14
sbb eax, eax
lea edx, [eax + 2]
jmp 0x4a8a80
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
lea edi, [esi + edx*4]
cmp edi, ebx
je 0x4a8fa0
sub esp, 0xc
push 0x248
jmp 0x4a8cd3
call fcn.00478c00
test eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x88], eax
jne 0x4a88f6
mov eax, dword [esp + 0x10]
jmp 0x4a8df3
sub esp, 0xc
push 0x17e
push str..cryptoecec_mult.c
push 0x71
jmp 0x4a8cda
mov edx, dword [esp + 0x40]
imul edx, dword [esp + 0x44]
cmp edx, eax
jbe 0x4a8ea3
mov ebx, dword [esp + 0x44]
xor edx, edx
lea eax, [eax + ebx - 1]
div ebx
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], eax
jb 0x4a92bc
lea esi, [ebp + eax]
mov dword [esp + 0x48], esi
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
cmp ebp, dword [esp + 0x48]
mov dword [esp + 8], edi
mov ebx, ebp
mov edi, dword [eax + 0x10]
jae 0x4a90a2
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
dec ecx
lea esi, [edx + ebp*4]
mov dword [esp], ecx
jmp 0x4a8f67
mov edx, dword [esp + 0x44]
mov dword [esi], edx
mov eax, dword [esp + 0x58]
cmp eax, edx
jb 0x4a92c9
sub eax, edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
mov dword [eax + ebx*4 + 4], 0
push eax
push 0x21a
push str..cryptoecec_mult.c
mov ecx, dword [esi]
push ecx
call fcn.00457fd0
mov edx, dword [esp + 0x40]
add esp, 0x10
test eax, eax
mov dword [edx + ebx*4], eax
je 0x4a927e
push edx
mov ecx, dword [esi]
push ecx
mov edx, dword [esp + 0x10]
push edx
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esi]
add esp, 0x10
cmp eax, dword [esp + 0x28]
jbe 0x4a8f39
mov dword [esp + 0x28], eax
mov eax, dword [edi]
test eax, eax
je 0x4a9260
mov eax, dword [esp + 0x1c]
mov dword [eax + ebx*4], edi
mov edx, dword [esp + 0x44]
inc ebx
mov ecx, dword [esp + 0x3c]
add dword [esp + 8], edx
add esi, 4
cmp ebx, dword [esp + 0x48]
lea edi, [edi + ecx*4]
jae 0x4a90a2
cmp dword [esp], ebx
ja 0x4a8ed2
mov eax, dword [esp + 0x58]
mov dword [esi], eax
jmp 0x4a8eea
sub esp, 0xc
push 0x1d6
jmp 0x4a8cd3
cmp dword [esp + 0x14], 1
je 0x4a8b8e
sub esp, 0xc
push 0x1ca
jmp 0x4a8cd3
sub esp, 0xc
mov ebx, dword [esp + 0x7c]
push ebx
call fcn.00473a80
mov dword [esp + 0x5c], eax
add esp, 0x10
test eax, eax
je 0x4a8cf0
xor edi, edi
cmp dword [esp + 4], 0
jbe 0x4a90b7
mov ebx, dword [esp + 0x1c]
jmp 0x4a900a
sub esp, 8
mov ecx, dword [esp + 0x88]
mov eax, dword [ecx + edi*4]
push eax
mov esi, dword [ebx]
mov eax, dword [esi]
push eax
call fcn.00473b30
add esp, 0x10
test eax, eax
je 0x4a8cf0
mov edx, dword [esp + 0x34]
cmp dword [edx + edi*4], 1
ja 0x4a9017
inc edi
add ebx, 4
cmp dword [esp + 4], edi
jbe 0x4a90b7
cmp edi, ebp
jb 0x4a8fcf
sub esp, 8
mov eax, dword [esp + 0x58]
jmp 0x4a8fdc
mov ecx, dword [esp + 0x88]
push ecx
mov edx, dword [ebx]
mov esi, dword [edx]
push esi
mov eax, dword [esp + 0x54]
push eax
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.00475430
add esp, 0x10
test eax, eax
je 0x4a8cf0
mov edx, dword [esp + 0x34]
mov esi, 1
mov ecx, dword [edx + edi*4]
dec ecx
mov eax, esi
shl eax, cl
cmp eax, 1
jbe 0x4a8ffc
sub esp, 0xc
mov eax, dword [esp + 0x94]
push eax
mov edx, dword [esp + 0x5c]
push edx
mov ecx, dword [ebx]
mov eax, dword [ecx + esi*4 - 4]
push eax
mov edx, dword [ebx]
mov ecx, dword [edx + esi*4]
push ecx
mov eax, dword [esp + 0x8c]
push eax
call fcn.00475380
add esp, 0x20
test eax, eax
je 0x4a8cf0
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + edi*4]
dec ecx
mov edx, 1
inc esi
shl edx, cl
cmp edx, esi
ja 0x4a9054
jmp 0x4a8ffc
sub esp, 0xc
mov ebx, dword [esp + 0x18]
push ebx
call fcn.004582e0
add esp, 0x10
jmp 0x4a8b8e
mov esi, dword [esp + 0x88]
push esi
mov ebx, dword [esp + 0x24]
push ebx
mov edi, dword [esp + 0x2c]
push edi
mov ebp, dword [esp + 0x7c]
push ebp
call fcn.004756d0
add esp, 0x10
test eax, eax
je 0x4a8cf0
mov edi, dword [esp + 0x28]
dec edi
mov ebp, 1
js 0x4a91bf
test ebp, ebp
je 0x4a9184
xor esi, esi
nop
lea esi, [esi]
cmp esi, dword [esp + 0x48]
jae 0x4a91b0
mov edx, dword [esp + 0x2c]
cmp dword [edx + esi*4], edi
jbe 0x4a917e
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + esi*4]
movsx ebx, byte [edi + ecx]
test ebx, ebx
je 0x4a917e
mov eax, ebx
shr eax, 0x1f
je 0x4a912b
neg ebx
cmp eax, dword [esp + 0x38]
je 0x4a914c
test ebp, ebp
je 0x4a922f
mov ecx, dword [esp + 0x38]
test ecx, ecx
sete dl
and edx, 0xff
mov dword [esp + 0x38], edx
test ebp, ebp
je 0x4a91e9
sub esp, 8
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + esi*4]
sar ebx, 1
mov edx, dword [eax + ebx*4]
push edx
mov ebp, dword [esp + 0x80]
push ebp
call fcn.00473b30
add esp, 0x10
test eax, eax
je 0x4a8cf0
xor ebp, ebp
inc esi
jmp 0x4a9100
mov ebx, dword [esp + 0x88]
push ebx
mov eax, dword [esp + 0x78]
push eax
mov ecx, dword [esp + 0x7c]
push ecx
mov edx, dword [esp + 0x7c]
push edx
call fcn.00475430
add esp, 0x10
test eax, eax
jne 0x4a90f6
jmp 0x4a8cf0
dec edi
jns 0x4a90ee
test ebp, ebp
je 0x4a9293
sub esp, 8
mov esi, dword [esp + 0x7c]
push esi
mov edi, dword [esp + 0x7c]
push edi
call fcn.00474c70
add esp, 0x10
test eax, eax
je 0x4a8cf0
mov dword [esp + 0x10], 1
jmp 0x4a8cf0
sub esp, 0xc
mov ecx, dword [esp + 0x94]
push ecx
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + esi*4]
sar ebx, 1
mov ecx, dword [edx + ebx*4]
push ecx
mov eax, dword [esp + 0x88]
push eax
mov edx, dword [esp + 0x8c]
push edx
mov ebx, dword [esp + 0x8c]
push ebx
call fcn.00475380
add esp, 0x20
test eax, eax
je 0x4a8cf0
inc esi
jmp 0x4a9100
push eax
mov eax, dword [esp + 0x8c]
push eax
mov ecx, dword [esp + 0x7c]
push ecx
mov edx, dword [esp + 0x7c]
push edx
call fcn.004754d0
add esp, 0x10
test eax, eax
jne 0x4a9139
jmp 0x4a8cf0
sub esp, 0xc
push 0x226
push str..cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call fcn.0045d0e0
add esp, 0x20
sub esp, 0xc
mov ebp, dword [esp + 0x18]
push ebp
call fcn.004582e0
add esp, 0x10
jmp 0x4a8cf0
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x4a91dc
push ecx
mov ecx, dword [esp + 0x8c]
push ecx
mov eax, dword [esp + 0x7c]
push eax
mov edx, dword [esp + 0x7c]
push edx
call fcn.004754d0
jmp 0x4a91d1
sub esp, 0xc
push 0x1fe
jmp 0x4a8cd3
sub esp, 0xc
push 0x20f
jmp 0x4a8cd3