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

Disassembly:
mov eax, 0x54
call fcn.101b79b0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x64]
mov eax, dword [esi + 8]
push edi
xor edi, edi
xor ebp, ebp
push eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 0x60], edi
call fcn.100d4370
mov ebx, dword [esp + 0x78]
add esp, 4
test eax, eax
jne 0x101454f2
mov ecx, dword [esi + 0xc]
push ecx
call fcn.100d4370
add esp, 4
test eax, eax
jne 0x101454f2
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x70]
cmp edx, ecx
je 0x101454b9
cmp edx, edi
je 0x101454bd
cmp ebx, edi
jne 0x101454b9
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x6c]
push eax
push edi
push edx
push ecx
push esi
call fcn.10144df0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
cmp edx, edi
jne 0x101454fe
cmp ebx, 1
jne 0x101454f6
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
cmp eax, ecx
je 0x101454f6
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x78]
push ecx
mov ecx, dword [edx]
mov edx, dword [esp + 0x70]
push ecx
push eax
push edx
push esi
call fcn.10144df0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov edx, dword [esp + 0x70]
cmp edx, edi
je 0x101455b5
push esi
call fcn.100d4520
add esp, 4
cmp eax, edi
mov dword [esp + 0x58], eax
jne 0x10145520
push 0x1cf
push str.cryptoecec_mult.c
push 0x71
jmp 0x10145d90
mov ebp, dword [esi + 0x64]
cmp ebp, edi
mov dword [esp + 0x3c], ebp
je 0x101455a2
cmp dword [ebp + 8], edi
je 0x101455a2
mov ecx, dword [esp + 0x80]
mov edx, dword [ebp + 0x10]
push ecx
mov ecx, dword [edx]
push ecx
push eax
push esi
call fcn.100ff980
add esp, 0x10
test eax, eax
jne 0x101455a2
mov edx, dword [esp + 0x70]
mov esi, dword [ebp + 4]
push edx
mov dword [esp + 0x48], esi
call fcn.100d4560
xor edx, edx
div esi
add esp, 4
mov ecx, eax
mov eax, dword [ebp + 8]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x24], ecx
jbe 0x10145578
mov dword [esp + 0x24], eax
mov ecx, dword [ebp + 0xc]
sub ecx, 1
mov edx, 1
shl edx, cl
imul eax, edx
cmp dword [ebp + 0x14], eax
mov dword [esp + 0x54], edx
je 0x101455b5
push 0x1eb
push str.cryptoecec_mult.c
push 0x44
jmp 0x10145d90
mov eax, 1
xor ebp, ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
add eax, ebx
push 0x1f9
lea esi, [eax*4]
push str.cryptoecec_mult.c
push esi
mov dword [esp + 0x28], eax
call fcn.100de150
push 0x1fa
mov edi, eax
push str.cryptoecec_mult.c
push esi
mov dword [esp + 0x4c], edi
call fcn.100de150
push 0x1fc
lea ecx, [esi + 4]
push str.cryptoecec_mult.c
push ecx
mov dword [esp + 0x44], eax
call fcn.100de150
push 0x1fd
push str.cryptoecec_mult.c
push esi
mov dword [esp + 0x40], eax
call fcn.100de150
add esp, 0x30
cmp dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
je 0x1014562f
mov edx, dword [esp + 0x10]
mov dword [edx], 0
xor ecx, ecx
cmp edi, ecx
je 0x10145d84
cmp dword [esp + 0x20], ecx
je 0x10145d84
cmp dword [esp + 0x10], ecx
je 0x10145d84
cmp dword [esp + 0x14], ecx
je 0x10145d84
mov eax, dword [esp + 0x38]
add eax, ebx
cmp eax, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], eax
jbe 0x10145761
mov eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x10]
sub eax, edi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
sub ebp, edi
sub eax, edi
mov esi, edi
mov dword [esp + 0x60], eax
lea ecx, [ecx]
mov edi, dword [esp + 0x18]
cmp edi, ebx
jae 0x101456a2
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + esi]
push edx
jmp 0x101456a7
mov eax, dword [esp + 0x70]
push eax
call fcn.100d4560
add esp, 4
cmp eax, 0x7d0
jb 0x101456bd
mov eax, 6
jmp 0x101456ed
cmp eax, 0x320
jb 0x101456cb
mov eax, 5
jmp 0x101456ed
cmp eax, 0x12c
jb 0x101456d9
mov eax, 4
jmp 0x101456ed
cmp eax, 0x46
jb 0x101456e5
mov eax, 3
jmp 0x101456ed
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 [esi + ebp + 4], 0
add dword [esp + 0x30], edx
cmp edi, ebx
jae 0x10145712
mov eax, dword [esp + 0x40]
mov eax, dword [eax + esi]
jmp 0x10145716
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
mov edx, dword [esi]
lea edi, [ecx + esi]
push edi
push edx
push eax
call fcn.10128fa0
add esp, 0xc
test eax, eax
mov dword [esi + ebp], eax
je 0x10145d9f
mov edi, dword [edi]
cmp edi, dword [esp + 0x28]
jbe 0x10145741
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x18]
add eax, 1
add esi, 4
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
jb 0x10145690
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x3c]
cmp dword [esp + 0x24], 0
je 0x10145942
test ebp, ebp
jne 0x1014578c
cmp dword [esp + 0x38], 1
je 0x10145942
push 0x222
push str.cryptoecec_mult.c
push 0x44
jmp 0x10145d90
cmp dword [esp + 0x38], 0
mov dword [esp + 0x40], 0
je 0x101457ac
push 0x22b
push str.cryptoecec_mult.c
push 0x44
jmp 0x10145d90
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x40]
push ecx
push eax
push edx
mov dword [edi + ebx*4], eax
call fcn.10128fa0
mov esi, eax
add esp, 0xc
test esi, esi
mov dword [esp + 0x38], esi
je 0x10145d9f
mov ecx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x28]
ja 0x10145809
mov edx, dword [esp + 0x20]
lea eax, [ebx + 1]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov dword [eax + ebx*4], esi
mov dword [eax + ebx*4 + 4], 0
mov dword [edx + ebx*4], ecx
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ecx + ebx*4], eax
jmp 0x10145942
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x44]
imul eax, edi
cmp ecx, eax
jae 0x1014585b
xor edx, edx
lea eax, [ecx + edi - 1]
div edi
cmp eax, dword [ebp + 8]
jbe 0x10145855
push 0x256
push str.cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call fcn.100dc5a0
push 0x257
push str.cryptoecec_mult.c
push esi
call fcn.100de200
add esp, 0x20
jmp 0x10145d9f
add eax, ebx
mov dword [esp + 0x1c], eax
cmp ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
mov edi, dword [edx + 0x10]
mov dword [esp + 0x24], esi
jae 0x1014592f
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x10]
mov edx, ebx
lea esi, [eax + edx*4]
mov edx, dword [esp + 0x14]
sub ebp, eax
sub edx, eax
mov dword [esp + 0x60], edx
jmp 0x10145894
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
add eax, 0xffffffff
cmp ebx, eax
jae 0x101458b5
mov eax, dword [esp + 0x44]
cmp ecx, eax
mov dword [esi], eax
jb 0x10145976
sub ecx, eax
mov dword [esp + 0x40], ecx
jmp 0x101458b7
mov dword [esi], ecx
push 0x272
mov dword [esi + ebp + 4], 0
mov eax, dword [esi]
push str.cryptoecec_mult.c
push eax
call fcn.100de150
add esp, 0xc
test eax, eax
mov dword [esi + ebp], eax
je 0x101459aa
mov ecx, dword [esi]
mov edx, dword [esp + 0x24]
push ecx
push edx
push eax
call fcn.101b4f90
mov eax, dword [esi]
add esp, 0xc
cmp eax, dword [esp + 0x28]
jbe 0x101458fc
mov dword [esp + 0x28], eax
cmp dword [edi], 0
je 0x101459de
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x54]
add dword [esp + 0x24], edx
mov dword [eax + esi], edi
add ebx, 1
add esi, 4
cmp ebx, dword [esp + 0x1c]
lea edi, [edi + ecx*4]
jb 0x10145890
mov esi, dword [esp + 0x38]
push 0x285
push str.cryptoecec_mult.c
push esi
call fcn.100de200
add esp, 0xc
mov eax, dword [esp + 0x30]
push 0x28f
lea ecx, [eax*4 + 4]
push str.cryptoecec_mult.c
push ecx
call fcn.100de150
add esp, 0xc
test eax, eax
mov dword [esp + 0x50], eax
jne 0x10145a12
push 0x291
jmp 0x10145d89
push 0x265
push str.cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call fcn.100dc5a0
mov eax, dword [esp + 0x4c]
push 0x266
push str.cryptoecec_mult.c
push eax
call fcn.100de200
add esp, 0x20
jmp 0x10145d9f
push 0x274
push str.cryptoecec_mult.c
push 0x41
push 0xbb
push 0x10
call fcn.100dc5a0
mov ecx, dword [esp + 0x4c]
push 0x275
push str.cryptoecec_mult.c
push ecx
call fcn.100de200
add esp, 0x20
jmp 0x10145d9f
push 0x27d
push str.cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call fcn.100dc5a0
mov edx, dword [esp + 0x4c]
push 0x27e
push str.cryptoecec_mult.c
push edx
call fcn.100de200
add esp, 0x20
jmp 0x10145d9f
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
lea eax, [edi + edx*4]
xor ebp, ebp
cmp dword [esp + 0x2c], ebp
mov dword [esp + 0x54], eax
mov dword [eax], 0
jbe 0x10145a96
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
sub eax, esi
mov dword [esp + 0x60], eax
lea ecx, [ecx]
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 0x10145a86
mov eax, dword [esp + 0x68]
push eax
call fcn.100ff430
add esp, 4
test eax, eax
mov dword [edi], eax
je 0x10145d9f
mov ecx, dword [esi]
sub ecx, 1
mov edx, 1
shl edx, cl
add ebx, 1
add edi, 4
cmp ebx, edx
jb 0x10145a55
mov eax, dword [esp + 0x60]
add ebp, 1
add esi, 4
cmp ebp, dword [esp + 0x2c]
jb 0x10145a40
mov eax, dword [esp + 0x54]
cmp edi, eax
je 0x10145aab
push 0x2a2
push str.cryptoecec_mult.c
push 0x44
jmp 0x10145d90
mov eax, dword [esp + 0x68]
push eax
call fcn.100ff430
add esp, 4
test eax, eax
mov dword [esp + 0x4c], eax
je 0x10145d9f
xor ebp, ebp
cmp dword [esp + 0x2c], ebp
jbe 0x10145ba6
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x78]
mov ebx, dword [esp + 0x34]
sub edi, esi
mov dword [esp + 0x60], edi
sub ebx, esi
cmp ebp, dword [esp + 0x74]
mov edx, dword [esi]
mov eax, dword [edx]
jae 0x10145af3
mov ecx, dword [edi + esi]
jmp 0x10145af7
mov ecx, dword [esp + 0x58]
push ecx
push eax
call fcn.100ff560
add esp, 8
test eax, eax
je 0x10145d9f
cmp dword [ebx + esi], 1
jbe 0x10145b96
mov edx, dword [esi]
mov ecx, dword [esp + 0x80]
mov eax, dword [edx]
mov edx, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x50]
push eax
push ecx
push edx
call fcn.100ff770
add esp, 0x10
test eax, eax
je 0x10145d9f
mov ecx, dword [ebx + esi]
mov edi, 1
sub ecx, edi
mov eax, edi
shl eax, cl
cmp eax, edi
jbe 0x10145b92
lea esp, [esp]
mov ecx, dword [esi]
mov edx, dword [esp + 0x80]
lea eax, [ecx + edi*4]
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [eax - 4]
mov eax, dword [eax]
push ecx
mov ecx, dword [esp + 0x70]
push edx
push eax
push ecx
call fcn.100ff6c0
add esp, 0x14
test eax, eax
je 0x10145d9f
mov ecx, dword [ebx + esi]
sub ecx, 1
mov edx, 1
shl edx, cl
add edi, 1
cmp edi, edx
jb 0x10145b50
mov edi, dword [esp + 0x60]
add ebp, 1
add esi, 4
cmp ebp, dword [esp + 0x2c]
jb 0x10145ae4
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x6c]
push ecx
push edx
push eax
call fcn.100ffaa0
add esp, 0x10
test eax, eax
je 0x10145d9f
mov ebp, dword [esp + 0x28]
add ebp, 0xffffffff
mov ebx, dword [esp + 0x6c]
mov esi, 1
mov dword [esp + 0x44], esi
js 0x10145d38
test esi, esi
jne 0x10145c0a
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
push ecx
push ebx
push ebx
push edx
call fcn.100ff770
add esp, 0x10
test eax, eax
je 0x10145d9f
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
jbe 0x10145d2b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
sub ecx, eax
sub eax, edi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], eax
jmp 0x10145c48
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
add eax, edi
cmp dword [eax + ecx], ebp
jbe 0x10145d0f
mov eax, dword [eax]
movsx esi, byte [eax + ebp]
test esi, esi
je 0x10145d0f
xor eax, eax
test esi, esi
setl al
test eax, eax
je 0x10145c6e
neg esi
cmp eax, dword [esp + 0x48]
je 0x10145ca6
cmp dword [esp + 0x44], 0
jne 0x10145c99
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
push ecx
push ebx
push edx
call fcn.100ff810
add esp, 0xc
test eax, eax
je 0x10145d9f
xor eax, eax
cmp dword [esp + 0x48], eax
sete al
mov dword [esp + 0x48], eax
sar esi, 1
cmp dword [esp + 0x44], 0
je 0x10145cea
mov ecx, dword [edi]
mov edx, dword [ecx + esi*4]
push edx
push ebx
call fcn.100ff560
add esp, 8
test eax, eax
je 0x10145d9f
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x68]
push eax
push ebx
push ecx
call fcn.100ffe60
add esp, 0xc
test eax, eax
je 0x10145d48
mov dword [esp + 0x44], 0
jmp 0x10145d0f
mov edx, dword [esp + 0x80]
mov eax, dword [edi]
mov ecx, dword [eax + esi*4]
push edx
mov edx, dword [esp + 0x6c]
push ecx
push ebx
push ebx
push edx
call fcn.100ff6c0
add esp, 0x14
test eax, eax
je 0x10145d9f
mov eax, dword [esp + 0x18]
add eax, 1
add edi, 4
cmp eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jb 0x10145c40
mov esi, dword [esp + 0x44]
sub ebp, 1
jns 0x10145be7
test esi, esi
je 0x10145d59
mov eax, dword [esp + 0x68]
push ebx
push eax
call fcn.100ff5e0
add esp, 8
jmp 0x10145d76
push 0x2f1
push str.cryptoecec_mult.c
push 0xa3
jmp 0x10145d90
cmp dword [esp + 0x48], 0
je 0x10145d7a
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
push ecx
push ebx
push edx
call fcn.100ff810
add esp, 0xc
test eax, eax
je 0x10145d9f
mov dword [esp + 0x5c], 1
jmp 0x10145d9f
push 0x204
push str.cryptoecec_mult.c
push 0x41
push 0xbb
push 0x10
call fcn.100dc5a0
add esp, 0x14
mov eax, dword [esp + 0x4c]
push eax
call fcn.100ff4f0
mov ecx, dword [esp + 0x38]
push 0x30d
push str.cryptoecec_mult.c
push ecx
call fcn.100de200
mov edx, dword [esp + 0x30]
push 0x30e
push str.cryptoecec_mult.c
push edx
call fcn.100de200
mov edi, dword [esp + 0x2c]
add esp, 0x1c
test edi, edi
je 0x10145e14
mov eax, dword [edi]
test eax, eax
mov esi, edi
je 0x10145e01
push 0x313
push str.cryptoecec_mult.c
push eax
call fcn.100de200
mov eax, dword [esi + 4]
add esi, 4
add esp, 0xc
test eax, eax
jne 0x10145de4
push 0x315
push str.cryptoecec_mult.c
push edi
call fcn.100de200
add esp, 0xc
mov edi, dword [esp + 0x50]
test edi, edi
je 0x10145e4a
mov eax, dword [edi]
test eax, eax
mov esi, edi
je 0x10145e37
push eax
call fcn.100ff520
mov eax, dword [esi + 4]
add esi, 4
add esp, 4
test eax, eax
jne 0x10145e24
push 0x31b
push str.cryptoecec_mult.c
push edi
call fcn.100de200
add esp, 0xc
mov eax, dword [esp + 0x14]
push 0x31d
push str.cryptoecec_mult.c
push eax
call fcn.100de200
mov eax, dword [esp + 0x68]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret