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

Disassembly:
mov eax, 0x54
call fcn.0055bc20
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.00479180
mov ebx, dword [esp + 0x78]
add esp, 4
test eax, eax
jne 0x4fc3d2
mov ecx, dword [esi + 0xc]
push ecx
call fcn.00479180
add esp, 4
test eax, eax
jne 0x4fc3d2
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x70]
cmp edx, ecx
je 0x4fc399
cmp edx, edi
je 0x4fc39d
cmp ebx, edi
jne 0x4fc399
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x6c]
push eax
push edi
push edx
push ecx
push esi
call fcn.004fbbf0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
cmp edx, edi
jne 0x4fc3de
cmp ebx, 1
jne 0x4fc3d6
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
cmp eax, ecx
je 0x4fc3d6
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.004fbbf0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov edx, dword [esp + 0x70]
cmp edx, edi
je 0x4fc4b5
push esi
call fcn.005251d0
add esp, 4
mov dword [esp + 0x58], eax
cmp eax, edi
jne 0x4fc410
call fcn.004671d0
push str.ec_wNAF_mul
push 0x1dc
push str.cryptoecec_mult.c
call fcn.00467260
push edi
push 0x71
jmp 0x4fccb3
mov ebp, dword [esi + 0x60]
mov dword [esp + 0x3c], ebp
cmp ebp, edi
je 0x4fc4a2
cmp dword [ebp + 8], edi
je 0x4fc4a2
mov ecx, dword [esp + 0x80]
mov edx, dword [ebp + 0x10]
push ecx
mov ecx, dword [edx]
push ecx
push eax
push esi
call fcn.004c01b0
add esp, 0x10
test eax, eax
jne 0x4fc4a2
mov edx, dword [esp + 0x70]
mov esi, dword [ebp + 4]
push edx
mov dword [esp + 0x48], esi
call fcn.00479370
xor edx, edx
div esi
add esp, 4
mov ecx, eax
mov eax, dword [ebp + 8]
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, eax
jbe 0x4fc46a
mov dword [esp + 0x24], eax
mov ecx, dword [ebp + 0xc]
dec ecx
mov edx, 1
shl edx, cl
imul eax, edx
mov dword [esp + 0x54], edx
cmp dword [ebp + 0x14], eax
je 0x4fc4b5
call fcn.004671d0
push str.ec_wNAF_mul
push 0x1f8
push str.cryptoecec_mult.c
call fcn.00467260
push edi
push 0x44
jmp 0x4fccb3
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 0x206
lea esi, [eax*4]
push str.cryptoecec_mult.c
push esi
mov dword [esp + 0x28], eax
call fcn.00466b70
push 0x207
mov edi, eax
push str.cryptoecec_mult.c
push esi
mov dword [esp + 0x4c], edi
call fcn.00466b70
push 0x209
lea ecx, [esi + 4]
push str.cryptoecec_mult.c
push ecx
mov dword [esp + 0x44], eax
call fcn.00466b70
push 0x20a
push str.cryptoecec_mult.c
push esi
mov dword [esp + 0x40], eax
call fcn.00466b70
add esp, 0x30
cmp dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
je 0x4fc52f
mov edx, dword [esp + 0x10]
mov dword [edx], 0
xor ecx, ecx
cmp edi, ecx
je 0x4fcc96
cmp dword [esp + 0x20], ecx
je 0x4fcc96
cmp dword [esp + 0x10], ecx
je 0x4fcc96
cmp dword [esp + 0x14], ecx
je 0x4fcc96
mov eax, dword [esp + 0x38]
add eax, ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], eax
cmp eax, ecx
jbe 0x4fc65f
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 0x4fc5a2
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + esi]
push edx
jmp 0x4fc5a7
mov eax, dword [esp + 0x70]
push eax
call fcn.00479370
add esp, 4
cmp eax, 0x7d0
jb 0x4fc5bd
mov eax, 6
jmp 0x4fc5ed
cmp eax, 0x320
jb 0x4fc5cb
mov eax, 5
jmp 0x4fc5ed
cmp eax, 0x12c
jb 0x4fc5d9
mov eax, 4
jmp 0x4fc5ed
cmp eax, 0x46
jb 0x4fc5e5
mov eax, 3
jmp 0x4fc5ed
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 0x4fc612
mov eax, dword [esp + 0x40]
mov eax, dword [eax + esi]
jmp 0x4fc616
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.004f1570
add esp, 0xc
mov dword [esi + ebp], eax
test eax, eax
je 0x4fccbd
mov edi, dword [edi]
cmp edi, dword [esp + 0x28]
jbe 0x4fc641
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x18]
inc eax
add esi, 4
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x2c]
jb 0x4fc590
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x24], 0
je 0x4fc864
test ebp, ebp
jne 0x4fc69a
cmp dword [esp + 0x38], 1
je 0x4fc864
call fcn.004671d0
push str.ec_wNAF_mul
push 0x22f
push str.cryptoecec_mult.c
call fcn.00467260
push ebp
push 0x44
jmp 0x4fccb3
cmp dword [esp + 0x38], 0
mov dword [esp + 0x40], 0
je 0x4fc6cb
call fcn.004671d0
push str.ec_wNAF_mul
push 0x238
push str.cryptoecec_mult.c
call fcn.00467260
push 0
push 0x44
jmp 0x4fccb3
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.004f1570
mov esi, eax
add esp, 0xc
mov dword [esp + 0x38], esi
test esi, esi
je 0x4fccbd
mov ecx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x28]
ja 0x4fc728
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 0x4fc864
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x44]
imul eax, edi
cmp ecx, eax
jae 0x4fc786
xor edx, edx
lea eax, [ecx + edi - 1]
div edi
cmp eax, dword [ebp + 8]
jbe 0x4fc780
call fcn.004671d0
push str.ec_wNAF_mul
push 0x263
push str.cryptoecec_mult.c
call fcn.00467260
push 0
push 0x44
push 0x10
call fcn.004673f0
push 0x264
push str.cryptoecec_mult.c
push esi
call fcn.00466c10
add esp, 0x24
jmp 0x4fccbd
add eax, ebx
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x3c]
mov edi, dword [edx + 0x10]
mov dword [esp + 0x24], esi
cmp ebx, dword [esp + 0x1c]
jae 0x4fc851
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 0x4fc7ba
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
dec eax
cmp ebx, eax
jae 0x4fc7d9
mov eax, dword [esp + 0x44]
mov dword [esi], eax
cmp ecx, eax
jb 0x4fc8a2
sub ecx, eax
mov dword [esp + 0x40], ecx
jmp 0x4fc7db
mov dword [esi], ecx
push 0x27f
mov dword [esi + ebp + 4], 0
mov eax, dword [esi]
push str.cryptoecec_mult.c
push eax
call fcn.00466b70
add esp, 0xc
mov dword [esi + ebp], eax
test eax, eax
je 0x4fc8e2
mov ecx, dword [esi]
mov edx, dword [esp + 0x24]
push ecx
push edx
push eax
call fcn.0055bc50
mov eax, dword [esi]
add esp, 0xc
cmp eax, dword [esp + 0x28]
jbe 0x4fc820
mov dword [esp + 0x28], eax
cmp dword [edi], 0
je 0x4fc922
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
inc ebx
add esi, 4
lea edi, [edi + ecx*4]
cmp ebx, dword [esp + 0x1c]
jb 0x4fc7b6
mov esi, dword [esp + 0x38]
push 0x292
push str.cryptoecec_mult.c
push esi
call fcn.00466c10
add esp, 0xc
mov eax, dword [esp + 0x30]
push 0x29c
lea ecx, [eax*4 + 4]
push str.cryptoecec_mult.c
push ecx
call fcn.00466b70
add esp, 0xc
mov dword [esp + 0x50], eax
test eax, eax
jne 0x4fc962
call fcn.004671d0
push str.ec_wNAF_mul
push 0x29e
jmp 0x4fcca5
call fcn.004671d0
push str.ec_wNAF_mul
push 0x272
push str.cryptoecec_mult.c
call fcn.00467260
push 0
push 0x44
push 0x10
call fcn.004673f0
mov eax, dword [esp + 0x50]
push 0x273
push str.cryptoecec_mult.c
push eax
call fcn.00466c10
add esp, 0x24
jmp 0x4fccbd
call fcn.004671d0
push str.ec_wNAF_mul
push 0x281
push str.cryptoecec_mult.c
call fcn.00467260
push 0
push 0x41
push 0x10
call fcn.004673f0
mov ecx, dword [esp + 0x50]
push 0x282
push str.cryptoecec_mult.c
push ecx
call fcn.00466c10
add esp, 0x24
jmp 0x4fccbd
call fcn.004671d0
push str.ec_wNAF_mul
push 0x28a
push str.cryptoecec_mult.c
call fcn.00467260
push 0
push 0x44
push 0x10
call fcn.004673f0
mov edx, dword [esp + 0x50]
push 0x28b
push str.cryptoecec_mult.c
push edx
call fcn.00466c10
add esp, 0x24
jmp 0x4fccbd
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
lea eax, [edi + edx*4]
xor ebp, ebp
mov dword [esp + 0x54], eax
mov dword [eax], 0
cmp dword [esp + 0x2c], ebp
jbe 0x4fc9de
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]
dec ecx
mov edx, 1
shl edx, cl
xor ebx, ebx
test edx, edx
jbe 0x4fc9d0
mov eax, dword [esp + 0x68]
push eax
call fcn.004bfb60
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x4fccbd
mov ecx, dword [esi]
dec ecx
mov edx, 1
shl edx, cl
inc ebx
add edi, 4
cmp ebx, edx
jb 0x4fc9a3
mov eax, dword [esp + 0x60]
inc ebp
add esi, 4
cmp ebp, dword [esp + 0x2c]
jb 0x4fc990
mov eax, dword [esp + 0x54]
cmp edi, eax
je 0x4fca04
call fcn.004671d0
push str.ec_wNAF_mul
push 0x2af
push str.cryptoecec_mult.c
call fcn.00467260
push 0
push 0x44
jmp 0x4fccb3
mov eax, dword [esp + 0x68]
push eax
call fcn.004bfb60
add esp, 4
mov dword [esp + 0x4c], eax
test eax, eax
je 0x4fccbd
xor ebp, ebp
cmp dword [esp + 0x2c], ebp
jbe 0x4fcaf3
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
lea ecx, [ecx]
mov edx, dword [esi]
mov eax, dword [edx]
cmp ebp, dword [esp + 0x74]
jae 0x4fca4f
mov ecx, dword [edi + esi]
jmp 0x4fca53
mov ecx, dword [esp + 0x58]
push ecx
push eax
call fcn.004bfcc0
add esp, 8
test eax, eax
je 0x4fccbd
cmp dword [ebx + esi], 1
jbe 0x4fcae5
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.004bff50
add esp, 0x10
test eax, eax
je 0x4fccbd
mov ecx, dword [ebx + esi]
mov edi, 1
dec ecx
mov eax, edi
shl eax, cl
cmp eax, edi
jbe 0x4fcae1
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.004bfe80
add esp, 0x14
test eax, eax
je 0x4fccbd
mov ecx, dword [ebx + esi]
dec ecx
mov edx, 1
shl edx, cl
inc edi
cmp edi, edx
jb 0x4fcaa3
mov edi, dword [esp + 0x60]
inc ebp
add esi, 4
cmp ebp, dword [esp + 0x2c]
jb 0x4fca40
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.004c02f0
add esp, 0x10
test eax, eax
je 0x4fccbd
mov ebp, dword [esp + 0x28]
add ebp, 0xffffffff
mov ebx, dword [esp + 0x6c]
mov esi, 1
mov dword [esp + 0x44], esi
js 0x4fcc5b
test esi, esi
jne 0x4fcb57
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
push ecx
push ebx
push ebx
push edx
call fcn.004bff50
add esp, 0x10
test eax, eax
je 0x4fccbd
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
jbe 0x4fcc4e
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 0x4fcb8c
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
add eax, edi
cmp dword [eax + ecx], ebp
jbe 0x4fcc34
mov eax, dword [eax]
movsx esi, byte [eax + ebp]
test esi, esi
je 0x4fcc34
xor eax, eax
test esi, esi
setl al
test eax, eax
je 0x4fcbb2
neg esi
cmp eax, dword [esp + 0x48]
je 0x4fcbea
cmp dword [esp + 0x44], 0
jne 0x4fcbdd
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
push ecx
push ebx
push edx
call fcn.004c0000
add esp, 0xc
test eax, eax
je 0x4fccbd
xor eax, eax
cmp dword [esp + 0x48], eax
sete al
mov dword [esp + 0x48], eax
mov ecx, dword [edi]
sar esi, 1
cmp dword [esp + 0x44], 0
mov edx, dword [ecx + esi*4]
je 0x4fcc14
push edx
push ebx
call fcn.004bfcc0
add esp, 8
test eax, eax
je 0x4fccbd
mov dword [esp + 0x44], 0
jmp 0x4fcc34
mov eax, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x6c]
push edx
push ebx
push ebx
push eax
call fcn.004bfe80
add esp, 0x14
test eax, eax
je 0x4fccbd
mov eax, dword [esp + 0x18]
inc eax
add edi, 4
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jb 0x4fcb84
mov esi, dword [esp + 0x44]
sub ebp, 1
jns 0x4fcb34
test esi, esi
je 0x4fcc6b
mov ecx, dword [esp + 0x68]
push ebx
push ecx
call fcn.004bfd60
add esp, 8
jmp 0x4fcc88
cmp dword [esp + 0x48], 0
je 0x4fcc8c
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x68]
push edx
push ebx
push eax
call fcn.004c0000
add esp, 0xc
test eax, eax
je 0x4fccbd
mov dword [esp + 0x5c], 1
jmp 0x4fccbd
call fcn.004671d0
push str.ec_wNAF_mul
push 0x211
push str.cryptoecec_mult.c
call fcn.00467260
push 0
push 0x41
push 0x10
call fcn.004673f0
add esp, 0x18
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.004bfc50
mov edx, dword [esp + 0x38]
push 0x30c
push str.cryptoecec_mult.c
push edx
call fcn.00466c10
mov eax, dword [esp + 0x30]
push 0x30d
push str.cryptoecec_mult.c
push eax
call fcn.00466c10
mov edi, dword [esp + 0x2c]
add esp, 0x1c
test edi, edi
je 0x4fcd32
mov eax, dword [edi]
mov esi, edi
test eax, eax
je 0x4fcd1f
push 0x312
push str.cryptoecec_mult.c
push eax
call fcn.00466c10
mov eax, dword [esi + 4]
add esi, 4
add esp, 0xc
test eax, eax
jne 0x4fcd02
push 0x314
push str.cryptoecec_mult.c
push edi
call fcn.00466c10
add esp, 0xc
mov edi, dword [esp + 0x50]
test edi, edi
je 0x4fcd68
mov eax, dword [edi]
mov esi, edi
test eax, eax
je 0x4fcd55
push eax
call fcn.004bfc80
mov eax, dword [esi + 4]
add esi, 4
add esp, 4
test eax, eax
jne 0x4fcd42
push 0x31a
push str.cryptoecec_mult.c
push edi
call fcn.00466c10
add esp, 0xc
mov ecx, dword [esp + 0x14]
push 0x31c
push str.cryptoecec_mult.c
push ecx
call fcn.00466c10
mov eax, dword [esp + 0x68]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret