Function at 0x4a9340
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 0x4a9410
sub esp, 0xc
push 0x160
push str..cryptoecec_mult.c
push 0x65
push 0xbb
push 0x10
call fcn.0045dc30
xor eax, eax
add esp, 0x20
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
test edi, edi
je 0x4a9778
xor edx, edx
cmp edx, ebp
jae 0x4a9437
mov esi, esi
mov ebx, dword [esp + 0x80]
mov eax, dword [ebx + edx*4]
cmp ecx, dword [eax]
jne 0x4a9959
inc edx
cmp edx, ebp
jb 0x4a9420
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x4a9993
test edi, edi
je 0x4a94b0
sub esp, 0xc
mov edx, dword [esp + 0x7c]
push edx
call fcn.00474df0
mov dword [esp + 0x60], eax
add esp, 0x10
test eax, eax
je 0x4a99b1
push 0x4a9090
push 0x4a9010
push 0x4a8fe0
mov eax, dword [esp + 0x7c]
mov esi, dword [eax + 0x44]
push esi
call fcn.00475550
mov dword [esp + 0x28], eax
add esp, 0x10
test eax, eax
je 0x4a9498
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x4a979a
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.00458b20
mov dword [esp + 0x44], eax
add esp, 0xc
push 0x1a7
push str..cryptoecec_mult.c
push esi
call fcn.00458b20
mov dword [esp + 0x3c], eax
add esp, 0xc
push 0x1a8
push str..cryptoecec_mult.c
lea eax, [esi + 4]
push eax
call fcn.00458b20
mov dword [esp + 0x40], eax
add esp, 0xc
push 0x1a9
push str..cryptoecec_mult.c
push esi
call fcn.00458b20
mov dword [esp + 0x2c], eax
add esp, 0x10
mov edx, dword [esp + 0x34]
test edx, edx
je 0x4a9840
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a9840
mov edx, dword [esp + 0x30]
test edx, edx
je 0x4a9840
test eax, eax
je 0x4a9840
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 0x4a963b
mov esi, dword [esp + 0x2c]
lea esi, [esi]
lea edi, [edi]
cmp ebx, ebp
jae 0x4a9950
sub esp, 0xc
mov edx, dword [esp + 0x90]
mov ecx, dword [edx + ebx*4]
push ecx
call fcn.00477270
add esp, 0x10
cmp eax, 0x7cf
mov edx, 6
ja 0x4a95d0
cmp eax, 0x31f
mov dl, 5
ja 0x4a95d0
cmp eax, 0x12b
mov dl, 4
ja 0x4a95d0
cmp eax, 0x45
mov dl, 3
jbe 0x4a9966
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 0x4a9604
mov ecx, dword [esp + 0x90]
mov eax, dword [ecx + ebx*4]
push esi
call fcn.004a9130
mov edx, dword [esp + 0x40]
add esp, 0x10
test eax, eax
mov dword [edx + ebx*4], eax
je 0x4a9840
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + ebx*4]
cmp eax, dword [esp + 0x28]
jbe 0x4a962d
mov dword [esp + 0x28], eax
inc ebx
add esi, 4
cmp dword [esp + 4], ebx
ja 0x4a9580
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x4a96de
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4a9ad8
mov eax, dword [esp + 0x14]
test eax, eax
mov dword [esp + 0x58], 0
jne 0x4a9acb
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.004a9130
mov dword [esp + 0x1c], eax
add esp, 0x10
test eax, eax
je 0x4a9840
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x28]
ja 0x4a99c5
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 0x4a96d0
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.00458b20
mov dword [esp + 0x30], eax
add esp, 0x10
test eax, eax
je 0x4a9840
mov edx, dword [esp + 0x24]
xor edi, edi
mov dword [eax + edx*4], 0
mov ebx, eax
cmp dword [esp + 4], 0
jbe 0x4a9973
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 0x4a9771
sub esp, 0xc
mov eax, dword [esp + 0x7c]
push eax
call fcn.004745d0
add esp, 0x10
test eax, eax
mov dword [ebx], eax
je 0x4a9840
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 0x4a9740
inc edi
cmp dword [esp + 4], edi
jmp 0x4a971d
test ebp, ebp
jne 0x4a9418
sub esp, 8
mov esi, dword [esp + 0x7c]
push esi
mov ebx, dword [esp + 0x7c]
push ebx
call fcn.004757c0
add esp, 0x10
jmp 0x4a93fd
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.00475180
add esp, 0x10
test eax, eax
jne 0x4a9498
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 4]
mov dword [esp + 0x44], esi
sub esp, 0xc
push edi
call fcn.00477270
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 0x4a97f9
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 0x4a94b0
sub esp, 0xc
push 0x197
push str..cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call fcn.0045dc30
add esp, 0x20
lea esi, [esi]
mov edi, dword [esp + 0x54]
test edi, edi
je 0x4a9858
sub esp, 0xc
mov esi, dword [esp + 0x60]
push esi
call fcn.00479970
add esp, 0x10
mov ebp, dword [esp + 0x4c]
test ebp, ebp
je 0x4a9870
sub esp, 0xc
mov ebx, dword [esp + 0x58]
push ebx
call fcn.004741b0
add esp, 0x10
mov edx, dword [esp + 0x34]
test edx, edx
je 0x4a9888
sub esp, 0xc
mov eax, dword [esp + 0x40]
push eax
call fcn.00458e30
add esp, 0x10
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a98a0
sub esp, 0xc
mov edi, dword [esp + 0x38]
push edi
call fcn.00458e30
add esp, 0x10
mov esi, dword [esp + 0x30]
test esi, esi
je 0x4a98e7
mov ebx, dword [esp + 0x30]
mov ebp, dword [ebx]
test ebp, ebp
je 0x4a98d7
lea esi, [esi]
lea edi, [edi]
sub esp, 0xc
mov edx, dword [ebx]
push edx
call fcn.00458e30
add ebx, 4
add esp, 0x10
mov ebp, dword [ebx]
test ebp, ebp
jne 0x4a98c0
sub esp, 0xc
mov ebx, dword [esp + 0x3c]
push ebx
call fcn.00458e30
add esp, 0x10
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4a9927
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx]
test ecx, ecx
je 0x4a9917
lea esi, [esi]
sub esp, 0xc
mov edi, dword [ebx]
push edi
call fcn.00474330
add ebx, 4
add esp, 0x10
mov ecx, dword [ebx]
test ecx, ecx
jne 0x4a9900
sub esp, 0xc
mov esi, dword [esp + 0x2c]
push esi
call fcn.00458e30
add esp, 0x10
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x4a993f
sub esp, 0xc
mov edx, dword [esp + 0x28]
push edx
call fcn.00458e30
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 0x4a9596
sub esp, 0xc
push 0x16d
jmp 0x4a93e5
cmp eax, 0x14
sbb eax, eax
lea edx, [eax + 2]
jmp 0x4a95d0
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
lea edi, [esi + edx*4]
cmp edi, ebx
je 0x4a9af0
sub esp, 0xc
push 0x248
jmp 0x4a9823
call fcn.00479750
test eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x88], eax
jne 0x4a9446
mov eax, dword [esp + 0x10]
jmp 0x4a9943
sub esp, 0xc
push 0x17e
push str..cryptoecec_mult.c
push 0x71
jmp 0x4a982a
mov edx, dword [esp + 0x40]
imul edx, dword [esp + 0x44]
cmp edx, eax
jbe 0x4a99f3
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 0x4a9e0c
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 0x4a9bf2
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
dec ecx
lea esi, [edx + ebp*4]
mov dword [esp], ecx
jmp 0x4a9ab7
mov edx, dword [esp + 0x44]
mov dword [esi], edx
mov eax, dword [esp + 0x58]
cmp eax, edx
jb 0x4a9e19
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.00458b20
mov edx, dword [esp + 0x40]
add esp, 0x10
test eax, eax
mov dword [edx + ebx*4], eax
je 0x4a9dce
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 0x4a9a89
mov dword [esp + 0x28], eax
mov eax, dword [edi]
test eax, eax
je 0x4a9db0
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 0x4a9bf2
cmp dword [esp], ebx
ja 0x4a9a22
mov eax, dword [esp + 0x58]
mov dword [esi], eax
jmp 0x4a9a3a
sub esp, 0xc
push 0x1d6
jmp 0x4a9823
cmp dword [esp + 0x14], 1
je 0x4a96de
sub esp, 0xc
push 0x1ca
jmp 0x4a9823
sub esp, 0xc
mov ebx, dword [esp + 0x7c]
push ebx
call fcn.004745d0
mov dword [esp + 0x5c], eax
add esp, 0x10
test eax, eax
je 0x4a9840
xor edi, edi
cmp dword [esp + 4], 0
jbe 0x4a9c07
mov ebx, dword [esp + 0x1c]
jmp 0x4a9b5a
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.00474680
add esp, 0x10
test eax, eax
je 0x4a9840
mov edx, dword [esp + 0x34]
cmp dword [edx + edi*4], 1
ja 0x4a9b67
inc edi
add ebx, 4
cmp dword [esp + 4], edi
jbe 0x4a9c07
cmp edi, ebp
jb 0x4a9b1f
sub esp, 8
mov eax, dword [esp + 0x58]
jmp 0x4a9b2c
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.00475f80
add esp, 0x10
test eax, eax
je 0x4a9840
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 0x4a9b4c
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.00475ed0
add esp, 0x20
test eax, eax
je 0x4a9840
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 0x4a9ba4
jmp 0x4a9b4c
sub esp, 0xc
mov ebx, dword [esp + 0x18]
push ebx
call fcn.00458e30
add esp, 0x10
jmp 0x4a96de
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.00476220
add esp, 0x10
test eax, eax
je 0x4a9840
mov edi, dword [esp + 0x28]
dec edi
mov ebp, 1
js 0x4a9d0f
test ebp, ebp
je 0x4a9cd4
xor esi, esi
nop
lea esi, [esi]
cmp esi, dword [esp + 0x48]
jae 0x4a9d00
mov edx, dword [esp + 0x2c]
cmp dword [edx + esi*4], edi
jbe 0x4a9cce
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + esi*4]
movsx ebx, byte [edi + ecx]
test ebx, ebx
je 0x4a9cce
mov eax, ebx
shr eax, 0x1f
je 0x4a9c7b
neg ebx
cmp eax, dword [esp + 0x38]
je 0x4a9c9c
test ebp, ebp
je 0x4a9d7f
mov ecx, dword [esp + 0x38]
test ecx, ecx
sete dl
and edx, 0xff
mov dword [esp + 0x38], edx
test ebp, ebp
je 0x4a9d39
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.00474680
add esp, 0x10
test eax, eax
je 0x4a9840
xor ebp, ebp
inc esi
jmp 0x4a9c50
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.00475f80
add esp, 0x10
test eax, eax
jne 0x4a9c46
jmp 0x4a9840
dec edi
jns 0x4a9c3e
test ebp, ebp
je 0x4a9de3
sub esp, 8
mov esi, dword [esp + 0x7c]
push esi
mov edi, dword [esp + 0x7c]
push edi
call fcn.004757c0
add esp, 0x10
test eax, eax
je 0x4a9840
mov dword [esp + 0x10], 1
jmp 0x4a9840
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.00475ed0
add esp, 0x20
test eax, eax
je 0x4a9840
inc esi
jmp 0x4a9c50
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.00476020
add esp, 0x10
test eax, eax
jne 0x4a9c89
jmp 0x4a9840
sub esp, 0xc
push 0x226
push str..cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call fcn.0045dc30
add esp, 0x20
sub esp, 0xc
mov ebp, dword [esp + 0x18]
push ebp
call fcn.00458e30
add esp, 0x10
jmp 0x4a9840
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x4a9d2c
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.00476020
jmp 0x4a9d21
sub esp, 0xc
push 0x1fe
jmp 0x4a9823
sub esp, 0xc
push 0x20f
jmp 0x4a9823