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

Disassembly:
mov eax, dword [ebp - 0x718]
add eax, 1
mov dword [ebp - 0x718], eax
mov ecx, dword [ebp - 0x714]
mov edx, dword [ebp - 0x188]
add edx, 1
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 0x71c]
add eax, dword [ebp - 0x188]
movsx ecx, byte [eax]
test ecx, ecx
je 0x514254
mov edx, dword [ebp - 0x188]
movsx eax, byte [ebp + edx - 0x830]
idiv edi
inc dword [ebp - 0x7a7bf040]
add byte [eax], al
invalid
push eax
push eax
add esp, 4
call 0x5141e0
add byte [esi + 0x4c], al
inc edx
dec edi
inc ebx
aaa
add esp, 4
or eax, 0x14eac
and eax, 0x5dd9
pop eax
push edi
sub edi, 0x20c0
pop edi
push esi
jmp 0x514200
pop esi
mov ecx, dword [ebp - 0x71c]
add ecx, dword [ebp - 0x188]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x188]
movsx ecx, byte [ebp + eax - 0x830]
cmp edx, ecx
je 0x514246
mov edx, dword [ebp - 0x71c]
add edx, dword [ebp - 0x188]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x188]
movsx edx, byte [ebp + ecx - 0x830]
cmp eax, edx
jne 0x51424d
jmp 0x514193
jmp 0x514254
push edi
push ebx
add esp, 4
or edi, 0x8a2f
jmp 0x514268
xor edi, 0x12c6c
pop edi
push eax
jmp 0x514279
or eax, 0x2987
add eax, 0x7e7a
pop eax
mov eax, dword [ebp - 0x71c]
add eax, dword [ebp - 0x188]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x188]
movsx eax, byte [ebp + edx - 0x830]
cmp ecx, eax
jne 0x5142b3
mov dword [ebp - 0xc5c], 0
jmp 0x514322
push edx
or edx, 0x12da2
or edx, 0x1495d
sub edx, 0xf1ea
pop edx
push ebx
xor ebx, 0x1041b
or ebx, 0x5a48
pop ebx
push ecx
sub ecx, 0xe737
pop ecx
push edi
or edi, 0x1155e
pop edi
mov ecx, dword [ebp - 0x71c]
add ecx, dword [ebp - 0x188]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x188]
movsx ecx, byte [ebp + eax - 0x830]
or ecx, 0x20
cmp edx, ecx
jge 0x514318
mov dword [ebp - 0xc5c], 0xffffffff
jmp 0x514322
mov dword [ebp - 0xc5c], 1
cmp dword [ebp - 0xc5c], 0
jne 0x514339
mov edx, dword [ebp - 0x18ec]
mov dword [ebp - 0x3c8], edx
jmp 0x51434a
jmp 0x514123
cmp dword [ebp - 0x3c8], 0
je 0x514425
push esi
add esi, 0x674
sub esi, 0xe082
call 0x514373
add byte [edx + 0x32], cl
cmp byte [ebp + 0x45], cl
cmp al, 0x43
dec edx
dec ebx
add esp, 4
pop esi
push ebx
push edx
add esp, 4
or ebx, 0x16edc
xor ebx, 0xc084
pop ebx
mov ecx, dword [ebp - 0x3c8]
mov dword [ebp - 0x18f0], ecx
push edx
push esi
add esp, 4
xor edx, 0x3d43
sub edx, 0x6a70
pop edx
push ecx
push edx
add esp, 4
and ecx, 0x79fb
pop ecx
push eax
push edi
add esp, 4
and eax, 0x25ba
pop eax
push eax
and eax, 0x6b64
pop eax
mov edx, dword [ebp - 0x18f0]
mov dword [ebp - 0x18f4], edx
lea eax, [ebp - 0x1628]
push eax
call dword [ebp - 0x18f4]
test eax, eax
jne 0x514425
push edx
push esi
add esp, 4
sub edx, 0x69e6
add edx, 0xc4af
xor edx, 0x12d76
jmp 0x514400
pop edx
push edi
push edx
add esp, 4
call 0x514412
add byte [edx], dh
xor ecx, dword [ebx + 0x43]
cmp byte [ebp - 0x7d], cl
les eax, [edi + ebx*2]
mov dword [ebp - 0xa58], 0
jmp 0x514b10
push ecx
push ecx
add esp, 4
call 0x514438
add byte [ecx + edi + 0x42], al
inc edi
xor edi, dword [ebx]
aaa
dec eax
add esp, 4
or ecx, 0x16015
jmp 0x51444a
pop ecx
push ebx
push edi
add esp, 4
add ebx, 0x4119
pop ebx
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x18f8], ecx
mov edx, dword [ebp - 0x18f8]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x18fc], eax
mov ecx, dword [ebp - 0x18fc]
mov dword [ebp - 0x1574], ecx
push edx
add edx, 0xe8fa
jmp 0x51448d
pop edx
push edi
push eax
add esp, 4
jmp 0x514498
call 0x5144a7
add byte [0x4437324f], dh
inc esp
dec edx
inc edi
cmp al, byte [ebx - 0x187efb3c]
test eax, 0x5f00016a
cmp dword [ebp - 0x1574], 0
jne 0x5144c9
mov dword [ebp - 0x2a8], 0
jmp 0x514770
mov edx, dword [ebp - 0x1574]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xc68], ecx
push esi
push esi
add esp, 4
xor esi, 0x16e38
xor esi, 0x15b07
pop esi
push esi
push eax
add esp, 4
and esi, 0x1365
pop esi
push esi
add esi, 0x1281c
pop esi
push esi
push edx
add esp, 4
add esi, 0x17521
pop esi
cmp dword [ebp - 0xc68], 0
jne 0x514525
mov dword [ebp - 0x2a8], 0
jmp 0x514770
mov edx, dword [ebp - 0xc68]
mov dword [ebp - 0x4ec], edx
push ebx
push ecx
add esp, 4
xor ebx, 0x850b
sub ebx, 0xee73
sub ebx, 0x14980
call 0x514557
add byte [0x3e423842], dh
cmp dword [esi + 0x36], eax
xor al, 0x83
les eax, [ebx + ebx*2]
push esi
xor esi, 0x878
pop esi
lea eax, [ebp - 0x1628]
mov dword [ebp - 0xc64], eax
mov ecx, dword [ebp - 0x4ec]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xc60], edx
xor eax, eax
mov word [ebp - 0x20c], ax
xor ecx, ecx
mov word [ebp - 0x40], cx
push edi
add edi, 0xf87d
xor edi, 0x29cb
call 0x5145a9
add byte [ebx], dh
inc ecx
cmp eax, 0x4339373e
inc ecx
add esp, 4
call 0x5145bb
add byte [ecx + eax*2], bh
inc ebx
aaa
dec edx
inc edi
cmp eax, 0xc4833d3e
add al, 0x5f
mov edx, dword [ebp - 0xc60]
mov ax, word [edx]
mov word [ebp - 0xf92], ax
mov ecx, dword [ebp - 0xc60]
add ecx, 2
mov dword [ebp - 0xc60], ecx
mov dx, word [ebp - 0xf92]
mov word [ebp - 0x20c], dx
mov eax, dword [ebp - 0xc64]
mov cx, word [eax]
mov word [ebp - 0xf94], cx
mov edx, dword [ebp - 0xc64]
add edx, 2
mov dword [ebp - 0xc64], edx
mov ax, word [ebp - 0xf94]
mov word [ebp - 0x40], ax
push edi
call 0x514626
add byte [ecx + 0x46], cl
cmp eax, dword [ebx + 0x44]
xor al, 0x46
xor cl, byte [ebx - 0x7d]
les eax, [ecx + eax*4]
out dx, eax
loopne 0x51462a
add byte [eax], al
sub edi, 0x51d1
pop edi
push esi
push edx
add esp, 4
sub esi, 0x5003
add esi, 0xad8
pop esi
movzx ecx, word [ebp - 0x40]
test ecx, ecx
jne 0x514665
movzx edx, word [ebp - 0x20c]
movzx eax, word [ebp - 0x40]
sub edx, eax
mov dword [ebp - 0x157c], edx
jmp 0x5146bf
movzx ecx, word [ebp - 0x20c]
movzx edx, word [ebp - 0x40]
cmp ecx, edx
je 0x51458d
movzx eax, word [ebp - 0x20c]
xor eax, 0x20
movzx ecx, word [ebp - 0x40]
cmp eax, ecx
je 0x51458d
movzx edx, word [ebp - 0x20c]
movzx eax, word [ebp - 0x40]
cmp edx, eax
jge 0x5146a9
mov dword [ebp - 0x1578], 0xffffffff
jmp 0x5146b3
mov dword [ebp - 0x1578], 1
mov ecx, dword [ebp - 0x1578]
mov dword [ebp - 0x157c], ecx
cmp dword [ebp - 0x157c], 0
jne 0x514708
push ebx
call 0x5146d8
add byte [ebx + 0x3e], al
inc ecx
cmp al, 0x4e
dec ebp
cmp dword [eax], edi
dec eax
add esp, 4
and ebx, 0xc899
pop ebx
push ebx
push esi
add esp, 4
or ebx, 0x1502b
add ebx, 0x91fe
jmp 0x5146f9
pop ebx
mov edx, dword [ebp - 0x4ec]
mov dword [ebp - 0x2a8], edx
jmp 0x514770
push esi
or esi, 0xc91a
add esi, 0x8483
and esi, 0x1db4
pop esi
push esi
push edx
add esp, 4
sub esi, 0x17437
and esi, 0x31e2
add esi, 0x16d32
and esi, 0x128e4
pop esi
mov eax, dword [ebp - 0x4ec]
mov ecx, dword [eax]
mov dword [ebp - 0x4ec], ecx
mov edx, dword [ebp - 0x4ec]
cmp edx, dword [ebp - 0xc68]
je 0x514766
mov eax, dword [ebp - 0x4ec]
cmp dword [eax + 0x30], 0
jne 0x514531
mov dword [ebp - 0x2a8], 0
push esi
and esi, 0x58d9
and esi, 0x18521
pop esi
push ecx
sub ecx, 0xb9b7
or ecx, 0x842e
call 0x514798
add byte [edi], dh
inc esi
cmp eax, 0x3c4c4d41
add esp, 4
or ecx, 0x12b15
pop ecx
mov ecx, dword [ebp - 0x2a8]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x304], edx
push edi
push edx
add esp, 4
jmp 0x5147bf
pop edi
push ecx
or ecx, 0x12241
pop ecx
push edx
jmp 0x5147ce
pop edx
push ebx
call 0x5147df
add byte [eax], bh
xor al, 0x3b
xor eax, 0x4d504f49
inc esp
add esp, 4
pop ebx
mov dword [ebp - 0x730], 0
mov eax, dword [ebp - 0x304]
mov dword [ebp - 0x1580], eax
cmp dword [ebp - 0x1580], 0
jne 0x514813
mov ecx, dword [ebp - 0x730]
mov dword [ebp - 0x4f0], ecx
jmp 0x514b04
mov edx, dword [ebp - 0x1580]
mov eax, dword [ebp - 0x304]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1584], eax
jne 0x51483b
mov ecx, dword [ebp - 0x730]
mov dword [ebp - 0x4f0], ecx
jmp 0x514b04
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1584]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1588], edx
cmp dword [ebp - 0x1588], 0
jne 0x51486d
mov eax, dword [ebp - 0x730]
mov dword [ebp - 0x4f0], eax
jmp 0x514b04
mov ecx, dword [ebp - 0x304]
add ecx, dword [ebp - 0x1588]
mov dword [ebp - 0x724], ecx
jne 0x514892
mov edx, dword [ebp - 0x730]
mov dword [ebp - 0x4f0], edx
jmp 0x514b04
mov eax, dword [ebp - 0x724]
mov ecx, dword [ebp - 0x304]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x1900], ecx
mov edx, dword [ebp - 0x724]
mov eax, dword [ebp - 0x304]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x1904], eax
mov ecx, dword [ebp - 0x724]
mov edx, dword [ebp - 0x304]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x1908], edx
mov dword [ebp - 0x728], 0
jmp 0x5148ec
mov eax, dword [ebp - 0x728]
add eax, 1
mov dword [ebp - 0x728], eax
mov ecx, dword [ebp - 0x724]
mov edx, dword [ebp - 0x728]
cmp edx, dword [ecx + 0x18]
jae 0x514af8
mov eax, dword [ebp - 0x728]
mov ecx, dword [ebp - 0x1900]
mov edx, dword [ebp - 0x304]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x72c], edx
mov eax, dword [ebp - 0x728]
mov ecx, dword [ebp - 0x1904]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x1908]
mov ecx, dword [ebp - 0x304]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x190c], ecx
mov dword [ebp - 0x18c], 0
jmp 0x51495c
mov eax, dword [ebp - 0x72c]
add eax, dword [ebp - 0x18c]
movsx ecx, byte [eax]
test ecx, ecx
je 0x514a0e
mov edx, dword [ebp - 0x18c]
movsx eax, byte [ebp + edx - 0x960]
test eax, eax
je 0x514a0e
push ecx
add ecx, 0x4654
call 0x51499e
add byte [0x4239413d], dh
inc ebx
cmp dh, byte [ebx + eax*4]
les eax, [ecx + eax*4]
jmp 0x515a22
push edi
push eax
add esp, 4
sub edi, 0x167d4
add edi, 0x12ba
pop edi
push esi
push eax
add esp, 4
or esi, 0x109e1
pop esi
push ebx
add ebx, 0x1276e
pop ebx
push edx
push esi
add esp, 4
or edx, 0x3dbd
pop edx
mov eax, dword [ebp - 0x72c]
add eax, dword [ebp - 0x18c]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x18c]
movsx eax, byte [ebp + edx - 0x960]
cmp ecx, eax
jne 0x514a6d
mov dword [ebp - 0xc6c], 0
jmp 0x514adc
push esi
and esi, 0x155d7
jmp 0x514a7b
pop esi
push esi
push ebx
add esp, 4
call 0x514a8f
add byte [0x3f4f4d4d], dh
inc eax
inc esp
dec ebx
add esp, 4
xor esi, 0x1090a
or esi, 0x103e5
pop esi
mov ecx, dword [ebp - 0x72c]
add ecx, dword [ebp - 0x18c]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x18c]
movsx ecx, byte [ebp + eax - 0x960]
or ecx, 0x20
cmp edx, ecx
jge 0x514ad2
mov dword [ebp - 0xc6c], 0xffffffff
jmp 0x514adc
mov dword [ebp - 0xc6c], 1
cmp dword [ebp - 0xc6c], 0
jne 0x514af3
mov edx, dword [ebp - 0x190c]
mov dword [ebp - 0x4f0], edx
jmp 0x514b04
jmp 0x5148dd
mov eax, dword [ebp - 0x730]
mov dword [ebp - 0x4f0], eax
mov ecx, dword [ebp - 0x4f0]
mov dword [ebp - 0xa58], ecx
add eax, 0x86556005
in eax, 0xa1
or al, 5
add eax, 0x5050fed
add eax, 0x43523d05
inc ebp
dec eax
cmp dword [eax + 0x53], edx
dec edx
mov cl, cl
or dword [ebp - 0x70], ebx
mov al, byte [ebp + 0x6b0404f8]
nop
or eax, 0x6b928e6b
cmc
add al, 4
nop
lcall 0xc788, 0x404f885
pop es
mov ds, word [edx + 0x404f885]
imul edx, dword [eax + 0x4f56b8a], 4
imul ecx, dword [esi + 0x402f18a], 4
nop
xchg edx, eax
cmp eax, 0x906b0404
push ss
imul ecx, dword [esi + 0x4f5699a], 4
nop
mov al, byte [ecx - 0x77fbfb08]
lds eax, [edi]
mov cs, word [edx + 0x404f881]
imul edx, dword [eax + 0x4f56992], 4
imul ecx, dword [esi - 0x12aa42ae], 0xc
add eax, 0x4d050505
cmp al, 0x4d
dec ebp
cmp eax, 0x9c9883b
xchg ch, cl
inc edx
insb byte es:[edi], dx
add eax, 0x460af005
push esp
dec eax
push esp
inc ebp
pop ebp
pop ebx
xchg bl, dh
cmp edx, dword [esi + 5]
add eax, 0xf9d7eb86
add eax, 0x40eb8605
test dword [0xbc146305], 0xd78abd5a
jp 0x515aea
adc al, 0xbc
mov dh, cl
add al, byte [esp + eax]
adc al, 0xbc
push edx
mov ebp, 0x8a8ec630
popal
out dx, eax
add al, 4
invalid
add al, 4
adc al, 0xbc
dec edx
mov ebp, 0x8914d540
sbb al, byte [esp + eax]
add al, 0x14
mov esp, 0x402f192
add al, 0x88
mul byte [0xbd5abc14]
inc eax
iretd