Function at 0x4a9560
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 0x4a9630
sub esp, 0xc
push 0x160
push str..cryptoecec_mult.c
push 0x65
push 0xbb
push 0x10
call fcn.0045de50
xor eax, eax
add esp, 0x20
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
test edi, edi
je 0x4a9998
xor edx, edx
cmp edx, ebp
jae 0x4a9657
mov esi, esi
mov ebx, dword [esp + 0x80]
mov eax, dword [ebx + edx*4]
cmp ecx, dword [eax]
jne 0x4a9b79
inc edx
cmp edx, ebp
jb 0x4a9640
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x4a9bb3
test edi, edi
je 0x4a96d0
sub esp, 0xc
mov edx, dword [esp + 0x7c]
push edx
call fcn.00475010
mov dword [esp + 0x60], eax
add esp, 0x10
test eax, eax
je 0x4a9bd1
push 0x4a92b0
push 0x4a9230
push 0x4a9200
mov eax, dword [esp + 0x7c]
mov esi, dword [eax + 0x44]
push esi
call fcn.00475770
mov dword [esp + 0x28], eax
add esp, 0x10
test eax, eax
je 0x4a96b8
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x4a99ba
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.00458d40
mov dword [esp + 0x44], eax
add esp, 0xc
push 0x1a7
push str..cryptoecec_mult.c
push esi
call fcn.00458d40
mov dword [esp + 0x3c], eax
add esp, 0xc
push 0x1a8
push str..cryptoecec_mult.c
lea eax, [esi + 4]
push eax
call fcn.00458d40
mov dword [esp + 0x40], eax
add esp, 0xc
push 0x1a9
push str..cryptoecec_mult.c
push esi
call fcn.00458d40
mov dword [esp + 0x2c], eax
add esp, 0x10
mov edx, dword [esp + 0x34]
test edx, edx
je 0x4a9a60
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a9a60
mov edx, dword [esp + 0x30]
test edx, edx
je 0x4a9a60
test eax, eax
je 0x4a9a60
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 0x4a985b
mov esi, dword [esp + 0x2c]
lea esi, [esi]
lea edi, [edi]
cmp ebx, ebp
jae 0x4a9b70
sub esp, 0xc
mov edx, dword [esp + 0x90]
mov ecx, dword [edx + ebx*4]
push ecx
call fcn.00477490
add esp, 0x10
cmp eax, 0x7cf
mov edx, 6
ja 0x4a97f0
cmp eax, 0x31f
mov dl, 5
ja 0x4a97f0
cmp eax, 0x12b
mov dl, 4
ja 0x4a97f0
cmp eax, 0x45
mov dl, 3
jbe 0x4a9b86
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 0x4a9824
mov ecx, dword [esp + 0x90]
mov eax, dword [ecx + ebx*4]
push esi
call fcn.004a9350
mov edx, dword [esp + 0x40]
add esp, 0x10
test eax, eax
mov dword [edx + ebx*4], eax
je 0x4a9a60
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + ebx*4]
cmp eax, dword [esp + 0x28]
jbe 0x4a984d
mov dword [esp + 0x28], eax
inc ebx
add esi, 4
cmp dword [esp + 4], ebx
ja 0x4a97a0
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x4a98fe
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4a9cf8
mov eax, dword [esp + 0x14]
test eax, eax
mov dword [esp + 0x58], 0
jne 0x4a9ceb
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.004a9350
mov dword [esp + 0x1c], eax
add esp, 0x10
test eax, eax
je 0x4a9a60
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x28]
ja 0x4a9be5
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 0x4a98f0
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.00458d40
mov dword [esp + 0x30], eax
add esp, 0x10
test eax, eax
je 0x4a9a60
mov edx, dword [esp + 0x24]
xor edi, edi
mov dword [eax + edx*4], 0
mov ebx, eax
cmp dword [esp + 4], 0
jbe 0x4a9b93
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 0x4a9991
sub esp, 0xc
mov eax, dword [esp + 0x7c]
push eax
call fcn.004747f0
add esp, 0x10
test eax, eax
mov dword [ebx], eax
je 0x4a9a60
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 0x4a9960
inc edi
cmp dword [esp + 4], edi
jmp 0x4a993d
test ebp, ebp
jne 0x4a9638
sub esp, 8
mov esi, dword [esp + 0x7c]
push esi
mov ebx, dword [esp + 0x7c]
push ebx
call fcn.004759e0
add esp, 0x10
jmp 0x4a961d
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.004753a0
add esp, 0x10
test eax, eax
jne 0x4a96b8
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 4]
mov dword [esp + 0x44], esi
sub esp, 0xc
push edi
call fcn.00477490
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 0x4a9a19
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 0x4a96d0
sub esp, 0xc
push 0x197
push str..cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call fcn.0045de50
add esp, 0x20
lea esi, [esi]
mov edi, dword [esp + 0x54]
test edi, edi
je 0x4a9a78
sub esp, 0xc
mov esi, dword [esp + 0x60]
push esi
call fcn.00479b90
add esp, 0x10
mov ebp, dword [esp + 0x4c]
test ebp, ebp
je 0x4a9a90
sub esp, 0xc
mov ebx, dword [esp + 0x58]
push ebx
call fcn.004743d0
add esp, 0x10
mov edx, dword [esp + 0x34]
test edx, edx
je 0x4a9aa8
sub esp, 0xc
mov eax, dword [esp + 0x40]
push eax
call fcn.00459050
add esp, 0x10
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a9ac0
sub esp, 0xc
mov edi, dword [esp + 0x38]
push edi
call fcn.00459050
add esp, 0x10
mov esi, dword [esp + 0x30]
test esi, esi
je 0x4a9b07
mov ebx, dword [esp + 0x30]
mov ebp, dword [ebx]
test ebp, ebp
je 0x4a9af7
lea esi, [esi]
lea edi, [edi]
sub esp, 0xc
mov edx, dword [ebx]
push edx
call fcn.00459050
add ebx, 4
add esp, 0x10
mov ebp, dword [ebx]
test ebp, ebp
jne 0x4a9ae0
sub esp, 0xc
mov ebx, dword [esp + 0x3c]
push ebx
call fcn.00459050
add esp, 0x10
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4a9b47
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx]
test ecx, ecx
je 0x4a9b37
lea esi, [esi]
sub esp, 0xc
mov edi, dword [ebx]
push edi
call fcn.00474550
add ebx, 4
add esp, 0x10
mov ecx, dword [ebx]
test ecx, ecx
jne 0x4a9b20
sub esp, 0xc
mov esi, dword [esp + 0x2c]
push esi
call fcn.00459050
add esp, 0x10
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x4a9b5f
sub esp, 0xc
mov edx, dword [esp + 0x28]
push edx
call fcn.00459050
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 0x4a97b6
sub esp, 0xc
push 0x16d
jmp 0x4a9605
cmp eax, 0x14
sbb eax, eax
lea edx, [eax + 2]
jmp 0x4a97f0
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
lea edi, [esi + edx*4]
cmp edi, ebx
je 0x4a9d10
sub esp, 0xc
push 0x248
jmp 0x4a9a43
call fcn.00479970
test eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x88], eax
jne 0x4a9666
mov eax, dword [esp + 0x10]
jmp 0x4a9b63
sub esp, 0xc
push 0x17e
push str..cryptoecec_mult.c
push 0x71
jmp 0x4a9a4a
mov edx, dword [esp + 0x40]
imul edx, dword [esp + 0x44]
cmp edx, eax
jbe 0x4a9c13
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 0x4aa02c
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 0x4a9e12
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
dec ecx
lea esi, [edx + ebp*4]
mov dword [esp], ecx
jmp 0x4a9cd7
mov edx, dword [esp + 0x44]
mov dword [esi], edx
mov eax, dword [esp + 0x58]
cmp eax, edx
jb 0x4aa039
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.00458d40
mov edx, dword [esp + 0x40]
add esp, 0x10
test eax, eax
mov dword [edx + ebx*4], eax
je 0x4a9fee
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 0x4a9ca9
mov dword [esp + 0x28], eax
mov eax, dword [edi]
test eax, eax
je 0x4a9fd0
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 0x4a9e12
cmp dword [esp], ebx
ja 0x4a9c42
mov eax, dword [esp + 0x58]
mov dword [esi], eax
jmp 0x4a9c5a
sub esp, 0xc
push 0x1d6
jmp 0x4a9a43
cmp dword [esp + 0x14], 1
je 0x4a98fe
sub esp, 0xc
push 0x1ca
jmp 0x4a9a43
sub esp, 0xc
mov ebx, dword [esp + 0x7c]
push ebx
call fcn.004747f0
mov dword [esp + 0x5c], eax
add esp, 0x10
test eax, eax
je 0x4a9a60
xor edi, edi
cmp dword [esp + 4], 0
jbe 0x4a9e27
mov ebx, dword [esp + 0x1c]
jmp 0x4a9d7a
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.004748a0
add esp, 0x10
test eax, eax
je 0x4a9a60
mov edx, dword [esp + 0x34]
cmp dword [edx + edi*4], 1
ja 0x4a9d87
inc edi
add ebx, 4
cmp dword [esp + 4], edi
jbe 0x4a9e27
cmp edi, ebp
jb 0x4a9d3f
sub esp, 8
mov eax, dword [esp + 0x58]
jmp 0x4a9d4c
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.004761a0
add esp, 0x10
test eax, eax
je 0x4a9a60
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 0x4a9d6c
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.004760f0
add esp, 0x20
test eax, eax
je 0x4a9a60
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 0x4a9dc4
jmp 0x4a9d6c
sub esp, 0xc
mov ebx, dword [esp + 0x18]
push ebx
call fcn.00459050
add esp, 0x10
jmp 0x4a98fe
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.00476440
add esp, 0x10
test eax, eax
je 0x4a9a60
mov edi, dword [esp + 0x28]
dec edi
mov ebp, 1
js 0x4a9f2f
test ebp, ebp
je 0x4a9ef4
xor esi, esi
nop
lea esi, [esi]
cmp esi, dword [esp + 0x48]
jae 0x4a9f20
mov edx, dword [esp + 0x2c]
cmp dword [edx + esi*4], edi
jbe 0x4a9eee
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + esi*4]
movsx ebx, byte [edi + ecx]
test ebx, ebx
je 0x4a9eee
mov eax, ebx
shr eax, 0x1f
je 0x4a9e9b
neg ebx
cmp eax, dword [esp + 0x38]
je 0x4a9ebc
test ebp, ebp
je 0x4a9f9f
mov ecx, dword [esp + 0x38]
test ecx, ecx
sete dl
and edx, 0xff
mov dword [esp + 0x38], edx
test ebp, ebp
je 0x4a9f59
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.004748a0
add esp, 0x10
test eax, eax
je 0x4a9a60
xor ebp, ebp
inc esi
jmp 0x4a9e70
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.004761a0
add esp, 0x10
test eax, eax
jne 0x4a9e66
jmp 0x4a9a60
dec edi
jns 0x4a9e5e
test ebp, ebp
je 0x4aa003
sub esp, 8
mov esi, dword [esp + 0x7c]
push esi
mov edi, dword [esp + 0x7c]
push edi
call fcn.004759e0
add esp, 0x10
test eax, eax
je 0x4a9a60
mov dword [esp + 0x10], 1
jmp 0x4a9a60
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.004760f0
add esp, 0x20
test eax, eax
je 0x4a9a60
inc esi
jmp 0x4a9e70
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.00476240
add esp, 0x10
test eax, eax
jne 0x4a9ea9
jmp 0x4a9a60
sub esp, 0xc
push 0x226
push str..cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call fcn.0045de50
add esp, 0x20
sub esp, 0xc
mov ebp, dword [esp + 0x18]
push ebp
call fcn.00459050
add esp, 0x10
jmp 0x4a9a60
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x4a9f4c
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.00476240
jmp 0x4a9f41
sub esp, 0xc
push 0x1fe
jmp 0x4a9a43
sub esp, 0xc
push 0x20f
jmp 0x4a9a43