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

Disassembly:
mov eax, 0x5c
call fcn.004a0d90
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
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
cmp eax, dword [ecx]
je 0x5540c3
push 0x246
push str..cryptoecec_mult.c
push 0x65
push 0xbb
push 0x10
call fcn.004fb700
add esp, 0x14
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x5c
ret
mov edx, dword [esp + 0x74]
push ebp
mov ebp, dword [esp + 0x7c]
cmp edx, edi
jne 0x5540e6
cmp ebp, edi
jne 0x5540e6
push ecx
push esi
call fcn.005261f0
add esp, 8
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x5c
ret
cmp dword [esi + 0xc], edi
je 0x554147
cmp dword [esi + 0x20], edi
je 0x554147
cmp edx, edi
je 0x554114
cmp ebp, edi
jne 0x554147
mov eax, dword [esp + 0x88]
push eax
push edi
push edx
push ecx
push esi
call fcn.00553c70
add esp, 0x14
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x5c
ret
cmp ebp, 1
jne 0x554147
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.00553c70
add esp, 0x14
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x5c
ret
xor ecx, ecx
cmp ebp, edi
jbe 0x554167
lea ecx, [ecx]
mov edx, dword [esp + 0x80]
mov edx, dword [edx + ecx*4]
cmp eax, dword [edx]
jne 0x5541b8
inc ecx
cmp ecx, ebp
jb 0x554150
mov edx, dword [esp + 0x78]
cmp dword [esp + 0x88], edi
jne 0x55418c
call fcn.00538d00
mov dword [esp + 0x60], eax
mov dword [esp + 0x88], eax
cmp eax, edi
je 0x554a8f
mov edx, dword [esp + 0x78]
cmp edx, edi
je 0x55428e
push esi
call fcn.00525b80
mov ebx, eax
add esp, 4
mov dword [esp + 0x5c], ebx
cmp ebx, edi
jne 0x5541dd
push 0x27a
push str..cryptoecec_mult.c
push 0x71
jmp 0x5549d3
push 0x26c
push str..cryptoecec_mult.c
push 0x65
push 0xbb
push 0x10
call fcn.004fb700
add esp, 0x14
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x5c
ret
push 0x553a10
push fcn.005539b0
mov eax, esi
mov ecx, dword [eax + 0x44]
push 0x553980
push ecx
call fcn.00525ed0
mov esi, eax
add esp, 0x10
mov dword [esp + 0x3c], esi
cmp esi, edi
je 0x55427d
cmp dword [esi + 8], edi
je 0x55427d
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.005266a0
add esp, 0x10
test eax, eax
jne 0x55427d
mov eax, dword [esp + 0x78]
mov ebx, dword [esi + 4]
push eax
mov dword [esp + 0x44], ebx
call fcn.00505b60
xor edx, edx
div ebx
add esp, 4
mov ebx, eax
mov eax, dword [esi + 8]
inc ebx
mov dword [esp + 0x28], ebx
cmp ebx, eax
jbe 0x554255
mov ebx, eax
mov dword [esp + 0x28], eax
mov ecx, dword [esi + 0xc]
dec ecx
mov edx, 1
shl edx, cl
imul eax, edx
mov dword [esp + 0x58], edx
cmp dword [esi + 0x14], eax
je 0x55428e
push 0x299
push str..cryptoecec_mult.c
push 0x44
jmp 0x5549d3
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.00500440
push 0x2a8
mov ebx, eax
push str..cryptoecec_mult.c
push esi
mov dword [esp + 0x4c], ebx
call fcn.00500440
push 0x2aa
lea ecx, [esi + 4]
push str..cryptoecec_mult.c
push ecx
mov dword [esp + 0x44], eax
call fcn.00500440
push 0x2ab
push str..cryptoecec_mult.c
push esi
mov dword [esp + 0x40], eax
call fcn.00500440
add esp, 0x30
mov dword [esp + 0x14], eax
cmp dword [esp + 0x10], edi
je 0x554300
mov edx, dword [esp + 0x10]
mov dword [edx], edi
cmp ebx, edi
je 0x5549c7
cmp dword [esp + 0x20], edi
je 0x5549c7
cmp dword [esp + 0x10], edi
je 0x5549c7
cmp dword [esp + 0x14], edi
je 0x5549c7
mov eax, dword [esp + 0x38]
add eax, ebp
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], eax
cmp eax, edi
jbe 0x554440
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 0x554378
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x78]
cmp dword [esp + 0x18], ebp
jae 0x554388
mov ecx, dword [ecx + esi]
push ecx
jmp 0x554389
push ebx
call fcn.00505b60
add esp, 4
cmp eax, 0x7d0
jb 0x55439f
mov eax, 6
jmp 0x5543cf
cmp eax, 0x320
jb 0x5543ad
mov eax, 5
jmp 0x5543cf
cmp eax, 0x12c
jb 0x5543bb
mov eax, 4
jmp 0x5543cf
cmp eax, 0x46
jb 0x5543c7
mov eax, 3
jmp 0x5543cf
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 0x5543f6
mov eax, dword [esp + 0x50]
mov eax, dword [eax + esi]
jmp 0x5543f8
mov eax, ebx
mov ecx, dword [esp + 0x68]
mov edi, dword [esi]
lea ebx, [ecx + esi]
push ebx
push eax
call fcn.00553a80
mov edx, dword [esp + 0x5c]
add esp, 8
mov dword [edx + esi], eax
test eax, eax
je 0x5549e2
mov ebx, dword [ebx]
cmp ebx, dword [esp + 0x24]
jbe 0x554426
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x18]
inc eax
add esi, 4
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x2c]
jb 0x554370
mov ebx, dword [esp + 0x34]
cmp dword [esp + 0x28], 0
je 0x5545f4
mov esi, dword [esp + 0x3c]
test esi, esi
jne 0x55446f
cmp dword [esp + 0x38], 1
je 0x5545f4
push 0x2d0
push str..cryptoecec_mult.c
push 0x44
jmp 0x5549d3
cmp dword [esp + 0x38], 0
mov dword [esp + 0x18], 0
je 0x55448f
push 0x2d9
push str..cryptoecec_mult.c
push 0x44
jmp 0x5549d3
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.00553a80
mov ecx, eax
add esp, 8
mov dword [esp + 0x50], ecx
test ecx, ecx
je 0x5549e2
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x24]
ja 0x5544eb
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 0x5545f4
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
imul edx, edi
cmp eax, edx
jae 0x55451e
xor edx, edx
lea eax, [eax + edi - 1]
div edi
cmp eax, dword [esi + 8]
jbe 0x554518
push 0x306
push str..cryptoecec_mult.c
push 0x44
jmp 0x5549d3
add eax, ebp
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x3c]
mov edi, dword [edx + 0x10]
mov dword [esp + 0x38], ecx
mov ebx, ebp
cmp ebp, dword [esp + 0x1c]
jae 0x5545eb
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 edi, edi
mov eax, dword [esp + 0x1c]
dec eax
cmp ebx, eax
jae 0x55456f
mov eax, dword [esp + 0x40]
mov dword [esi], eax
cmp dword [esp + 0x18], eax
jb 0x554624
sub dword [esp + 0x18], eax
jmp 0x554575
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.00500440
add esp, 0xc
mov dword [esi + ebp], eax
test eax, eax
je 0x554635
mov ecx, dword [esi]
mov edx, dword [esp + 0x38]
push ecx
push edx
push eax
call fcn.004a26d0
mov eax, dword [esi]
add esp, 0xc
cmp eax, dword [esp + 0x24]
jbe 0x5545ba
mov dword [esp + 0x24], eax
cmp dword [edi], 0
je 0x55465f
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
inc ebx
add esi, 4
lea edi, [edi + ecx*4]
cmp ebx, dword [esp + 0x1c]
jb 0x554550
mov ecx, dword [esp + 0x50]
push ecx
call fcn.00500640
add esp, 4
mov edx, dword [esp + 0x30]
push 0x33d
lea eax, [edx*4 + 4]
push str..cryptoecec_mult.c
push eax
call fcn.00500440
add esp, 0xc
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x554689
push 0x33f
jmp 0x5549cc
push 0x314
push str..cryptoecec_mult.c
push 0x44
jmp 0x5549d3
push 0x322
push str..cryptoecec_mult.c
push 0x41
push 0xbb
push 0x10
call fcn.004fb700
mov eax, dword [esp + 0x64]
push eax
call fcn.00500640
add esp, 0x18
jmp 0x5549e2
push 0x32b
push str..cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call fcn.004fb700
mov ecx, dword [esp + 0x64]
push ecx
call fcn.00500640
add esp, 0x18
jmp 0x5549e2
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
lea eax, [edi + ecx*4]
xor ebp, ebp
mov dword [esp + 0x58], eax
mov dword [eax], 0
cmp dword [esp + 0x2c], ebp
jbe 0x55470b
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]
dec ecx
mov edx, 1
shl edx, cl
xor ebx, ebx
test edx, edx
jbe 0x5546fd
jmp 0x5546d0
mov eax, dword [esp + 0x70]
push eax
call fcn.00526000
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x5549e2
mov ecx, dword [esi]
dec ecx
mov edx, 1
shl edx, cl
inc ebx
add edi, 4
cmp ebx, edx
jb 0x5546d0
mov eax, dword [esp + 0x68]
inc ebp
add esi, 4
cmp ebp, dword [esp + 0x2c]
jb 0x5546b4
mov eax, dword [esp + 0x58]
cmp edi, eax
je 0x554720
push 0x350
push str..cryptoecec_mult.c
push 0x44
jmp 0x5549d3
mov eax, dword [esp + 0x70]
push eax
call fcn.00526000
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
je 0x5549e2
xor ebp, ebp
cmp dword [esp + 0x2c], ebp
jbe 0x554813
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
lea esp, [esp]
mov edx, dword [esi]
mov eax, dword [edx]
cmp ebp, dword [esp + 0x7c]
jae 0x55476f
mov ecx, dword [edi + esi]
jmp 0x554773
mov ecx, dword [esp + 0x5c]
push ecx
push eax
call fcn.00526120
add esp, 8
test eax, eax
je 0x5549e2
cmp dword [ebx + esi], 1
jbe 0x554805
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.00526500
add esp, 0x10
test eax, eax
je 0x5549e2
mov ecx, dword [ebx + esi]
mov edi, 1
dec ecx
mov eax, edi
shl eax, cl
cmp eax, edi
jbe 0x554801
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.00526480
add esp, 0x14
test eax, eax
je 0x5549e2
mov ecx, dword [ebx + esi]
dec ecx
mov edx, 1
shl edx, cl
inc edi
cmp edi, edx
jb 0x5547c3
mov edi, dword [esp + 0x68]
inc ebp
add esi, 4
cmp ebp, dword [esp + 0x2c]
jb 0x554760
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.00526770
add esp, 0x10
test eax, eax
je 0x5549e2
mov ebx, dword [esp + 0x24]
add ebx, 0xffffffff
mov esi, 1
mov dword [esp + 0x40], esi
js 0x554984
test esi, esi
jne 0x554877
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.00526500
add esp, 0x10
test eax, eax
je 0x5549e2
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
jbe 0x554977
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 0x5548a4
mov eax, dword [esp + 0x68]
add eax, edi
cmp dword [eax + ebp], ebx
jbe 0x55495d
mov eax, dword [eax]
movsx esi, byte [eax + ebx]
test esi, esi
je 0x55495d
xor eax, eax
test esi, esi
setl al
test eax, eax
je 0x5548ca
neg esi
cmp eax, dword [esp + 0x44]
je 0x554906
cmp dword [esp + 0x40], 0
jne 0x5548f9
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
call fcn.00526570
add esp, 0xc
test eax, eax
je 0x5549e2
xor ecx, ecx
cmp dword [esp + 0x44], ecx
sete cl
mov dword [esp + 0x44], ecx
sar esi, 1
cmp dword [esp + 0x40], 0
je 0x554934
mov edx, dword [edi]
mov eax, dword [edx + esi*4]
mov ecx, dword [esp + 0x74]
push eax
push ecx
call fcn.00526120
add esp, 8
test eax, eax
je 0x5549e2
mov dword [esp + 0x40], 0
jmp 0x55495d
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.00526480
add esp, 0x14
test eax, eax
je 0x5549e2
mov eax, dword [esp + 0x18]
inc eax
add edi, 4
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jb 0x5548a0
mov esi, dword [esp + 0x40]
sub ebx, 1
jns 0x554850
test esi, esi
je 0x554998
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push eax
push ecx
call fcn.005261f0
add esp, 8
jmp 0x5549b9
cmp dword [esp + 0x44], 0
je 0x5549bd
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push edx
push eax
push ecx
call fcn.00526570
add esp, 0xc
test eax, eax
je 0x5549e2
mov dword [esp + 0x64], 1
jmp 0x5549e2
push 0x2b2
push str..cryptoecec_mult.c
push 0x41
push 0xbb
push 0x10
call fcn.004fb700
add esp, 0x14
mov eax, dword [esp + 0x60]
test eax, eax
je 0x5549f3
push eax
call fcn.00538d60
add esp, 4
mov eax, dword [esp + 0x48]
test eax, eax
je 0x554a04
push eax
call fcn.005260b0
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x554a15
push eax
call fcn.00500640
add esp, 4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x554a26
push eax
call fcn.00500640
add esp, 4
mov edi, dword [esp + 0x10]
test edi, edi
je 0x554a52
mov eax, dword [edi]
mov esi, edi
test eax, eax
je 0x554a49
push eax
call fcn.00500640
mov eax, dword [esi + 4]
add esi, 4
add esp, 4
test eax, eax
jne 0x554a36
push edi
call fcn.00500640
add esp, 4
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x554a7e
mov eax, dword [edi]
mov esi, edi
test eax, eax
je 0x554a75
push eax
call fcn.005260e0
mov eax, dword [esi + 4]
add esi, 4
add esp, 4
test eax, eax
jne 0x554a62
push edi
call fcn.00500640
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x554a8f
push eax
call fcn.00500640
add esp, 4
mov eax, dword [esp + 0x64]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x5c
ret