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

Disassembly:
mov eax, 0x5c
call fcn.10033890
mov ecx, dword [esp + 0x64]
push ebx
push esi
mov esi, dword [esp + 0x68]
mov eax, dword [esi]
push edi
xor edi, edi
xor ebx, ebx
cmp eax, dword [ecx]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x60], edi
je 0x10078393
push 0x246
push str..cryptoecec_mult.c
push 0x65
push 0xbb
push 0x10
call fcn.1003ae70
add esp, 0x14
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x5c
ret
mov edx, dword [esp + 0x74]
cmp edx, edi
push ebp
mov ebp, dword [esp + 0x7c]
jne 0x100783b6
cmp ebp, edi
jne 0x100783b6
push ecx
push esi
call fcn.1006f540
add esp, 8
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x5c
ret
cmp dword [esi + 0xc], edi
je 0x10078417
cmp dword [esi + 0x20], edi
je 0x10078417
cmp edx, edi
je 0x100783e4
cmp ebp, edi
jne 0x10078417
mov eax, dword [esp + 0x88]
push eax
push edi
push edx
push ecx
push esi
call fcn.10077f40
add esp, 0x14
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x5c
ret
cmp ebp, 1
jne 0x10078417
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
push edx
mov edx, dword [eax]
mov eax, dword [esp + 0x88]
push edx
mov edx, dword [eax]
push edx
push ecx
push esi
call fcn.10077f40
add esp, 0x14
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x5c
ret
xor ecx, ecx
cmp ebp, edi
jbe 0x10078439
lea ecx, [ecx]
mov edx, dword [esp + 0x80]
mov edx, dword [edx + ecx*4]
cmp eax, dword [edx]
jne 0x1007848a
add ecx, 1
cmp ecx, ebp
jb 0x10078420
mov edx, dword [esp + 0x78]
cmp dword [esp + 0x88], edi
jne 0x1007845e
call fcn.1006b510
cmp eax, edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x88], eax
je 0x10078d7d
mov edx, dword [esp + 0x78]
cmp edx, edi
je 0x10078564
push esi
call fcn.1006eac0
mov ebx, eax
add esp, 4
cmp ebx, edi
mov dword [esp + 0x5c], ebx
jne 0x100784af
push 0x27a
push str..cryptoecec_mult.c
push 0x71
jmp 0x10078cb8
push 0x26c
push str..cryptoecec_mult.c
push 0x65
push 0xbb
push 0x10
call fcn.1003ae70
add esp, 0x14
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x5c
ret
push 0x10077ce0
push fcn.10077c80
mov eax, esi
mov ecx, dword [eax + 0x44]
push 0x10077c50
push ecx
call fcn.1006f230
mov esi, eax
add esp, 0x10
cmp esi, edi
mov dword [esp + 0x3c], esi
je 0x10078553
cmp dword [esi + 8], edi
je 0x10078553
mov edx, dword [esp + 0x88]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
push edx
mov edx, dword [esp + 0x74]
push ecx
push ebx
push edx
call fcn.1006f910
add esp, 0x10
test eax, eax
jne 0x10078553
mov eax, dword [esp + 0x78]
mov ebx, dword [esi + 4]
push eax
mov dword [esp + 0x44], ebx
call fcn.10065470
xor edx, edx
div ebx
add esp, 4
mov ebx, eax
mov eax, dword [esi + 8]
add ebx, 1
cmp ebx, eax
mov dword [esp + 0x28], ebx
jbe 0x10078529
mov ebx, eax
mov dword [esp + 0x28], eax
mov ecx, dword [esi + 0xc]
sub ecx, 1
mov edx, 1
shl edx, cl
imul eax, edx
cmp dword [esi + 0x14], eax
mov dword [esp + 0x58], edx
je 0x10078564
push 0x299
push str..cryptoecec_mult.c
push 0x44
jmp 0x10078cb8
mov ebx, 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], ebx
lea eax, [ebx + ebp]
push 0x2a7
lea esi, [eax*4]
push str..cryptoecec_mult.c
push esi
mov dword [esp + 0x28], eax
call fcn.100407f0
push 0x2a8
mov ebx, eax
push str..cryptoecec_mult.c
push esi
mov dword [esp + 0x4c], ebx
call fcn.100407f0
push 0x2aa
lea ecx, [esi + 4]
push str..cryptoecec_mult.c
push ecx
mov dword [esp + 0x44], eax
call fcn.100407f0
push 0x2ab
push str..cryptoecec_mult.c
push esi
mov dword [esp + 0x40], eax
call fcn.100407f0
add esp, 0x30
cmp dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
je 0x100785d6
mov edx, dword [esp + 0x10]
mov dword [edx], edi
cmp ebx, edi
je 0x10078cac
cmp dword [esp + 0x20], edi
je 0x10078cac
cmp dword [esp + 0x10], edi
je 0x10078cac
cmp dword [esp + 0x14], edi
je 0x10078cac
mov eax, dword [esp + 0x38]
add eax, ebp
cmp eax, edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], eax
jbe 0x10078712
mov ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
sub ecx, ebx
sub edi, ebx
sub eax, ebx
mov esi, ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edi
mov dword [esp + 0x68], eax
jmp 0x10078648
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
cmp dword [esp + 0x18], ebp
mov ebx, dword [esp + 0x78]
jae 0x10078658
mov ecx, dword [ecx + esi]
push ecx
jmp 0x10078659
push ebx
call fcn.10065470
add esp, 4
cmp eax, 0x7d0
jb 0x1007866f
mov eax, 6
jmp 0x1007869f
cmp eax, 0x320
jb 0x1007867d
mov eax, 5
jmp 0x1007869f
cmp eax, 0x12c
jb 0x1007868b
mov eax, 4
jmp 0x1007869f
cmp eax, 0x46
jb 0x10078697
mov eax, 3
jmp 0x1007869f
cmp eax, 0x14
sbb eax, eax
add eax, 2
lea ecx, [eax - 1]
mov edx, 1
shl edx, cl
mov dword [esi], eax
mov dword [edi + esi + 4], 0
add dword [esp + 0x30], edx
cmp dword [esp + 0x18], ebp
jae 0x100786c6
mov eax, dword [esp + 0x50]
mov eax, dword [eax + esi]
jmp 0x100786c8
mov eax, ebx
mov ecx, dword [esp + 0x68]
mov edi, dword [esi]
lea ebx, [ecx + esi]
push ebx
push eax
call fcn.10077d50
mov edx, dword [esp + 0x5c]
add esp, 8
test eax, eax
mov dword [edx + esi], eax
je 0x10078cc7
mov ebx, dword [ebx]
cmp ebx, dword [esp + 0x24]
jbe 0x100786f6
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x18]
add eax, 1
add esi, 4
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
jb 0x10078640
mov ebx, dword [esp + 0x34]
cmp dword [esp + 0x28], 0
je 0x100788c8
mov esi, dword [esp + 0x3c]
test esi, esi
jne 0x10078741
cmp dword [esp + 0x38], 1
je 0x100788c8
push 0x2d0
push str..cryptoecec_mult.c
push 0x44
jmp 0x10078cb8
cmp dword [esp + 0x38], 0
mov dword [esp + 0x18], 0
je 0x10078761
push 0x2d9
push str..cryptoecec_mult.c
push 0x44
jmp 0x10078cb8
mov ecx, dword [esp + 0x78]
mov edi, dword [esi + 0xc]
lea eax, [esp + 0x18]
push eax
push ecx
mov dword [ebx + ebp*4], edi
call fcn.10077d50
mov ecx, eax
add esp, 8
test ecx, ecx
mov dword [esp + 0x50], ecx
je 0x10078cc7
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x24]
ja 0x100787bd
lea edx, [ebp + 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
mov dword [edx + ebp*4], ecx
mov ecx, dword [esp + 0x20]
mov dword [edx + ebp*4 + 4], 0
mov dword [ecx + ebp*4], eax
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x14]
mov dword [eax + ebp*4], edx
jmp 0x100788c8
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
imul edx, edi
cmp eax, edx
jae 0x100787f0
xor edx, edx
lea eax, [eax + edi - 1]
div edi
cmp eax, dword [esi + 8]
jbe 0x100787ea
push 0x306
push str..cryptoecec_mult.c
push 0x44
jmp 0x10078cb8
add eax, ebp
mov dword [esp + 0x1c], eax
cmp ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
mov edi, dword [edx + 0x10]
mov dword [esp + 0x38], ecx
mov ebx, ebp
jae 0x100788bf
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x10]
mov ecx, ebx
lea esi, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
sub ebp, eax
sub ecx, eax
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xffffffff
cmp ebx, eax
jae 0x10078841
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x18], eax
mov dword [esi], eax
jb 0x100788f8
sub dword [esp + 0x18], eax
jmp 0x10078847
mov edx, dword [esp + 0x18]
mov dword [esi], edx
push 0x320
mov dword [esi + ebp + 4], 0
mov eax, dword [esi]
push str..cryptoecec_mult.c
push eax
call fcn.100407f0
add esp, 0xc
test eax, eax
mov dword [esi + ebp], eax
je 0x10078909
mov ecx, dword [esi]
mov edx, dword [esp + 0x38]
push ecx
push edx
push eax
call fcn.10024b20
mov eax, dword [esi]
add esp, 0xc
cmp eax, dword [esp + 0x24]
jbe 0x1007888c
mov dword [esp + 0x24], eax
cmp dword [edi], 0
je 0x10078933
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
add dword [esp + 0x38], edx
mov dword [eax + esi], edi
add ebx, 1
add esi, 4
cmp ebx, dword [esp + 0x1c]
lea edi, [edi + ecx*4]
jb 0x10078820
mov ecx, dword [esp + 0x50]
push ecx
call fcn.100409f0
add esp, 4
mov edx, dword [esp + 0x30]
push 0x33d
lea eax, [edx*4 + 4]
push str..cryptoecec_mult.c
push eax
call fcn.100407f0
add esp, 0xc
test eax, eax
mov dword [esp + 0x4c], eax
jne 0x1007895d
push 0x33f
jmp 0x10078cb1
push 0x314
push str..cryptoecec_mult.c
push 0x44
jmp 0x10078cb8
push 0x322
push str..cryptoecec_mult.c
push 0x41
push 0xbb
push 0x10
call fcn.1003ae70
mov eax, dword [esp + 0x64]
push eax
call fcn.100409f0
add esp, 0x18
jmp 0x10078cc7
push 0x32b
push str..cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call fcn.1003ae70
mov ecx, dword [esp + 0x64]
push ecx
call fcn.100409f0
add esp, 0x18
jmp 0x10078cc7
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
lea eax, [edi + ecx*4]
xor ebp, ebp
cmp dword [esp + 0x2c], ebp
mov dword [esp + 0x58], eax
mov dword [eax], 0
jbe 0x100789e1
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
sub eax, esi
mov dword [esp + 0x68], eax
mov dword [eax + esi], edi
mov ecx, dword [esi]
sub ecx, 1
mov edx, 1
shl edx, cl
xor ebx, ebx
test edx, edx
jbe 0x100789d1
lea ecx, [ecx]
mov eax, dword [esp + 0x70]
push eax
call fcn.1006f350
add esp, 4
test eax, eax
mov dword [edi], eax
je 0x10078cc7
mov ecx, dword [esi]
sub ecx, 1
mov edx, 1
shl edx, cl
add ebx, 1
add edi, 4
cmp ebx, edx
jb 0x100789a0
mov eax, dword [esp + 0x68]
add ebp, 1
add esi, 4
cmp ebp, dword [esp + 0x2c]
jb 0x10078988
mov eax, dword [esp + 0x58]
cmp edi, eax
je 0x100789f6
push 0x350
push str..cryptoecec_mult.c
push 0x44
jmp 0x10078cb8
mov eax, dword [esp + 0x70]
push eax
call fcn.1006f350
add esp, 4
test eax, eax
mov dword [esp + 0x48], eax
je 0x10078cc7
xor ebp, ebp
cmp dword [esp + 0x2c], ebp
jbe 0x10078af6
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x34]
sub edi, esi
mov dword [esp + 0x68], edi
sub ebx, esi
cmp ebp, dword [esp + 0x7c]
mov edx, dword [esi]
mov eax, dword [edx]
jae 0x10078a41
mov ecx, dword [edi + esi]
jmp 0x10078a45
mov ecx, dword [esp + 0x5c]
push ecx
push eax
call fcn.1006f470
add esp, 8
test eax, eax
je 0x10078cc7
cmp dword [ebx + esi], 1
jbe 0x10078ae6
mov edx, dword [esi]
mov ecx, dword [esp + 0x88]
mov eax, dword [edx]
mov edx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x4c]
push eax
push ecx
push edx
call fcn.1006f770
add esp, 0x10
test eax, eax
je 0x10078cc7
mov ecx, dword [ebx + esi]
mov edi, 1
sub ecx, edi
mov eax, edi
shl eax, cl
cmp eax, edi
jbe 0x10078ae2
lea ebx, [ebx]
mov ecx, dword [esi]
mov edx, dword [esp + 0x88]
lea eax, [ecx + edi*4]
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [eax - 4]
mov eax, dword [eax]
push ecx
mov ecx, dword [esp + 0x78]
push edx
push eax
push ecx
call fcn.1006f6f0
add esp, 0x14
test eax, eax
je 0x10078cc7
mov ecx, dword [ebx + esi]
sub ecx, 1
mov edx, 1
shl edx, cl
add edi, 1
cmp edi, edx
jb 0x10078aa0
mov edi, dword [esp + 0x68]
add ebp, 1
add esi, 4
cmp ebp, dword [esp + 0x2c]
jb 0x10078a32
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x74]
push ecx
push edx
push eax
call fcn.1006f9e0
add esp, 0x10
test eax, eax
je 0x10078cc7
mov ebx, dword [esp + 0x24]
add ebx, 0xffffffff
mov esi, 1
mov dword [esp + 0x40], esi
js 0x10078c69
test esi, esi
jne 0x10078b5a
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
push ecx
push eax
push eax
push edx
call fcn.1006f770
add esp, 0x10
test eax, eax
je 0x10078cc7
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
jbe 0x10078c5c
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
sub ebp, eax
sub eax, edi
mov dword [esp + 0x68], eax
jmp 0x10078b87
mov eax, dword [esp + 0x68]
add eax, edi
cmp dword [eax + ebp], ebx
jbe 0x10078c40
mov eax, dword [eax]
movsx esi, byte [eax + ebx]
test esi, esi
je 0x10078c40
xor eax, eax
test esi, esi
setl al
test eax, eax
je 0x10078bad
neg esi
cmp eax, dword [esp + 0x44]
je 0x10078be9
cmp dword [esp + 0x40], 0
jne 0x10078bdc
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
call fcn.1006f7e0
add esp, 0xc
test eax, eax
je 0x10078cc7
xor ecx, ecx
cmp dword [esp + 0x44], ecx
sete cl
mov dword [esp + 0x44], ecx
sar esi, 1
cmp dword [esp + 0x40], 0
je 0x10078c17
mov edx, dword [edi]
mov eax, dword [edx + esi*4]
mov ecx, dword [esp + 0x74]
push eax
push ecx
call fcn.1006f470
add esp, 8
test eax, eax
je 0x10078cc7
mov dword [esp + 0x40], 0
jmp 0x10078c40
mov eax, dword [edi]
mov edx, dword [esp + 0x88]
mov ecx, dword [eax + esi*4]
mov eax, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x74]
push ecx
push eax
push eax
push edx
call fcn.1006f6f0
add esp, 0x14
test eax, eax
je 0x10078cc7
mov eax, dword [esp + 0x18]
add eax, 1
add edi, 4
cmp eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jb 0x10078b83
mov esi, dword [esp + 0x40]
sub ebx, 1
jns 0x10078b33
test esi, esi
je 0x10078c7d
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push eax
push ecx
call fcn.1006f540
add esp, 8
jmp 0x10078c9e
cmp dword [esp + 0x44], 0
je 0x10078ca2
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push edx
push eax
push ecx
call fcn.1006f7e0
add esp, 0xc
test eax, eax
je 0x10078cc7
mov dword [esp + 0x64], 1
jmp 0x10078cc7
push 0x2b2
push str..cryptoecec_mult.c
push 0x41
push 0xbb
push 0x10
call fcn.1003ae70
add esp, 0x14
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10078cd8
push eax
call fcn.1006b570
add esp, 4
mov eax, dword [esp + 0x48]
test eax, eax
je 0x10078ce9
push eax
call fcn.1006f400
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10078cfa
push eax
call fcn.100409f0
add esp, 4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10078d0b
push eax
call fcn.100409f0
add esp, 4
mov edi, dword [esp + 0x10]
test edi, edi
je 0x10078d3c
mov eax, dword [edi]
test eax, eax
mov esi, edi
je 0x10078d33
jmp 0x10078d20
push eax
call fcn.100409f0
mov eax, dword [esi + 4]
add esi, 4
add esp, 4
test eax, eax
jne 0x10078d20
push edi
call fcn.100409f0
add esp, 4
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x10078d6c
mov eax, dword [edi]
test eax, eax
mov esi, edi
je 0x10078d63
lea esp, [esp]
push eax
call fcn.1006f430
mov eax, dword [esi + 4]
add esi, 4
add esp, 4
test eax, eax
jne 0x10078d50
push edi
call fcn.100409f0
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10078d7d
push eax
call fcn.100409f0
add esp, 4
mov eax, dword [esp + 0x64]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x5c
ret