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

Disassembly:
imul ebx, esi, 0x38
pushf
call 0x51d60e
mov dword [esp], edx
call 0x51d684
jne 0x51e5dc
jbe 0x51d7a0
inc edi
dec edx
inc esp
bound edx, qword [ebp + 0x4d]
mov dword [ecx + 0x28], 6
cmp edi, 0xfffffffe
mov byte [ecx], al
pop esi
push edi
lodsb al, byte [esi]
or eax, dword [eax]
outsb dx, byte [esi]
pop ebp
bound ebp, qword [ebp + 0x51]
js 0x51d6a6
push esi
imul edx, dword [ebx + 0x41], 0
inc ebp
push eax
cmp edi, dword [ebp - 0x1c]
je 0x51d651
push edx
pushal
pop edi
bound ebx, qword [edi + 0x54]
pop edi
push esp
imul eax, dword [esi + 0x59], 0x6e46595f
dec ebp
push ebp
inc esi
pop ebp
pop esp
dec esp
push esp
insd dword es:[edi], dx
inc edi
je 0x51d708
dec esp
pop ecx
dec ebx
imul ecx, dword [ecx + 0x66], 0xc76c45
push ss
add byte [eax], al
add byte [ecx + 0x4b], ch
push ecx
insd dword es:[edi], dx
jnp 0x51d6c4
pop esp
dec esi
pop edi
push 0x55
pop eax
push esi
pop edx
push ebx
lea ebx, [esp + 0xa]
push ecx
lea esp, [esp - 4]
mov dword [esp], esi
mov ecx, edx
lea esi, [edi*4 - 0x10b69211]
add ecx, esi
add ecx, 0x10a6dc1b
push word [esp + 0x10]
popf
mov eax, dword [ecx]
mov esi, dword [esp]
lea esp, [esp + 4]
mov ecx, dword [esp]
lea esp, [esp + 4]
pop ebx
pop edx
lea esp, [esp + 2]
and al, 2
cmp byte [eax + ebx + 0x28], 0
push 0x676
push ax
lahf
lock xchg word [esp], ax
call 0x51d6dd
mov dword [esp], esi
call 0x51d708
push 0x4c
dec esi
push ecx
arpl word [ebp + 0x60], bx
pop esp
push ebp
push sp
dec eax
outsd dx, dword [esi]
pushal
push ecx
inc edx
pop ebp
pop esp
push ecx
dec eax
push esi
insd dword es:[edi], dx
push eax
dec ebp
inc edx
inc edi
jns 0x51d74f
jnp 0x51d752
inc ecx
push esp
mov esi, dword [esp]
lea esp, [esp + 4]
push ebp
mov ebp, 0x96
cmovge ebp, dword [esp + 0xa]
add esi, ebp
lock xchg dword [esp + 0xa], esi
and al, 0xa
pop ebp
mov esi, dword [esp]
lea esp, [esp + 4]
lock xchg word [esp], ax
sahf
mov ax, word [esp]
lea esp, [esp + 2]
ret
add byte [eax + 0x69], ch
pop edi
dec esp
js 0x51d7a9
push 0x43435751
fcom st(1)
pop ebp
push ebx
inc eax
jnp 0x51d7bd
dec ecx
imul esp, dword [edx + ebx*2 + 0x47], 0xffffffeb
mov ebx, 0x4c786c6d
dec edx
jne 0x51d71f
push eax
push 0xfb3bc88a
inc eax
push 0x6d
push 0xc758b50
cmp byte [esi + 0x14], 0
push 0x1b8
pushf
lea esp, [esp - 4]
and al, 0xfc
mov dword [esp], ebx
call fcn.0051d7bc
inc edi
push edx
push esi
dec edx
pop edx
popal
push ecx
js 0x51d812
adc cl, byte [ebp + 0x4a]
dec edx
push edx
jnp 0x51d7fb
push ecx
imul esi, dword [di + 0x47], 0x7d
stosd dword es:[edi], eax
jge 0x51d756
inc ecx
dec edi
bound ecx, qword [esi + edx*2 - 0x76]
ret
xchg dword [esp], ebx
lea esp, [esp + 4]
push esi
mov esi, 0x80
cmovne esi, dword [esp + 0xa]
add esi, ebx
mov dword [esp + 0xa], esi
lock xchg dword [esp], esi
lea esp, [esp + 4]
pop ebx
lock xchg word [esp], ax
xchg al, ah
sahf
pop ax
ret
cmp edi, 0x147089ff
jnp 0x51d855
dec ebx
dec ecx
dec ebx
fstp st(0)
push esp
pop edx
arpl word [ecx - 0x9137b], cx
inc dword [ebp + 0x47]
inc edi
jb 0x51d81b
cmp dword [esp + 0x20], 0xe655bfef
cmove ecx, edx
mov ecx, esi
cmp dword [esp + 0x58], 0x950fb261
jne 0x51d852
push ebp
out 0xf, al
inc esp
retf 0xce8b
inc esp
popal
push esi
imul esp, dword [ebp + edx*2 + 0x78], 0x61
push edx
push esi
push ebp
pop ebx
pop ebx
inc dx
push 0x48
dec ebp
js 0x51d888
pop esi
outsd dx, dword [esi]
push esp
outsb dx, byte [esi]
pop edx
dec ebp
inc edi
dec ecx
inc ebp
pop ebx
arpl word [ebx + 0x63], bx
pop esp
call fcn.0051d8d4
add byte [eax], al
dec edx
pushal
push ebx
jmp 0x5fbe9c35
add byte [eax], al
push eax
jmp 0x4f932dec
mov byte [edx], 0x8d
inc ebp
cli
add dword [esp], 0x17d
cmp edx, 0x380f1acf
jne 0x51ea8f
iretd
js 0x51eafb
push eax
push edi
push 0x5e4d616e
cmp edx, dword [esp + 0x14]
pop edx
mov dword [ebp - 8], edx
pop esp
push edx
dec edi
push ecx
pop ebp
arpl word fs:[ecx + 0x45], di
inc ecx
lea eax, [esi + 8]
and ecx, 0x300
push esi
inc ebp
dec esp
arpl word [eax + 0x54], ax
pop esp
pop edx
insd dword es:[edi], dx
pop ecx
dec ebp
inc ecx
xor ebx, ebx
insb byte es:[edi], dx
pushal
pop edi
insb byte es:[edi], dx
pop ebx
call 0x51ead8
mov dword [ebp - 0x76c], edx
inc esp
dec edi
outsb dx, byte [esi]
push ebx
push edx
push edi
insb byte es:[edi], dx
xor eax, eax
lea eax, [ebp - 0x18]
pop eax
bound esi, qword [ebp + 6]
jbe 0x51eba2
call fcn.00520247
pop ecx
push ecx
push ecx
dec ecx
push esp
push edi
dec edi
pop esp
push edi
push edx
cmp dword [esp + 0x4c], 0xd6fb672b
cmove ecx, edx
call fcn.0051eb64
jmp 0x4666489d
and al, 8
jge 0x51eb80
add byte [eax], al
mov ebx, dword [esp]
lea esp, [esp + 4]
ret
cmp dword [esp + 0x24], 0xc32e6043
je 0x542e78
mov eax, ebx
cmp dword [esp + 0x7c], 0xebda3455
jne 0x51ebd1
xor al, 0xda
jmp 0x51ec30
inc edx
push 0x5b786a4d
pop ebp
js 0x51ec11
inc esi
push eax
push edi
pop eax
dec esp
js 0x51ec12
push esp
dec edi
inc edi
dec ecx
pop edi
pop edi
cmp esi, 0xca331981
cmove ebp, ebp
pop esi
cmp dword [esp + 0x2c], 0xef5a1617
jne 0x51ebee
add esp, dword [edx + 0x56]
push ebp
dec edi
imul eax, dword [edi + 0x64], 0x33
int 0x81
jl 0x51ec17
xor ecx, ebp
cmp dword [esp - 0x20], 0x36c07587
je 0x5b1c09
loopne 0x51eb7c
jne 0x51ebb7
je 0x5b1c09
pop ebx
cmp eax, 0xa0f612c7
jne 0x51ec51
dec esp
imul edx, dword [esi - 0x17], 0x455380a2
push ebp
test ecx, ecx
insd dword es:[edi], dx
push esi
inc ebx
js 0x51ec71
popaw
dec ecx
dec esp
pop ecx
outsb dx, byte fs:[esi]
push esi
and eax, 0x10
push ebp
je 0x51ec22
add al, 0x83
invalid
call 0x51ec8c
push 0x63
push esp
pop edx
dec edi
inc eax
pop ecx
push eax
imul ebp, dword [eax + 0x5b], 0x46524d63
push ecx
dec esi
pop ebp
push esi
pop edx
pop eax
inc esi
push edx
dec eax
popal
pop edi
pop esi
pop esi
js 0x51ecde
pop esp
pop ebx
jns 0x51ecc6
push edi
push edi
dec esi
arpl word [eax + 0x6c], bx
inc edx
dec esi
push eax
inc ebx
inc edi
inc edi
push 0x47
jnp 0x51ecd8
dec edi
push dword fs:[esp]
add dword [esp], 0xffee2eef
add dword [esp + 4], 0x8a
ret
pop es
add byte [eax + 0x42], ch
bound ebx, qword [ebx + 0x41]
imul ebx, dword [edi + 0x64], 0x1be88352
mov al, byte [ecx]
push edi
outsb dx, byte [esi]
inc ebx
dec eax
push esp
pushal
dec edi
dec edx
push edx
dec ebp
cmp ecx, 0xc7a54e6f
je 0x51d604
leave
cmp edi, 0x83704bdd
jne 0x51ed51
push ecx
dec eax
dec ebx
insb byte es:[edi], dx
pop edi
std
lea esi, [esi + 8]
push eax
popal
dec esp
inc esp
pop eax
push edi
insw word es:[edi], dx
ja 0x51ed4f
imul ebp, dword [ecx + 0x4a], 0x55
pop edi
push esi
insb byte es:[edi], dx
push 0x48486f5b
dec esp
cmp eax, 0x200
stosd dword es:[edi], eax
pop esp
insd dword es:[edi], dx
jne 0x51ed79
dec esp
insb byte es:[edi], dx
inc ebp
inc ecx
jmp 0x4b9296df
pop esi
push ebp
ret
imul ebp, dword [ebp + 0x61], 0x75
xlatb
test dword [ebp + 0xc], 0x7ffff
push edi
call fcn.0051d1e0
mov ecx, dword [edi]
push ebp
dec ecx
inc ebx
je 0x51ee30
inc ecx
pop di
jnp 0x51edf2
imul ecx, dword [ebp + 0xf], 0xffffff85
inc ecx
add dword [eax], eax
add byte [ebx + 0x635456ca], cl
inc edx
movdqa xmmword [edi + 0x20], xmm5
fld dword [eax + eax]
inc esp
inc ecx
dec edx
ret 0x9ed0
dec ebx
jnp 0x51ee3f
outsd dx, dword [esi]
push dword [ebp + 0x10]
cmpsb byte [esi], byte es:[edi]
jne 0x51ee05
jns 0x51ee6b
test eax, eax
push ecx
dec ebp
pop ebp
inc edi
popal
push ecx
js 0x51ee6c
pop edx
push 0x74
and al, 0xc3
jnp 0x51ee7b
call fcn.0051ee69
push edi
inc ebx
push esi
pushal
pop ebx
cdq
or al, byte [ebx + 0x6d62ffc8]
inc ecx
dec eax
dec esp
xor esi, esi
push 0xffffffffffffffc7
inc ebp
cld
invalid
stc
xor byte [edi + 0x65], bl
dec edx
push esp
je 0x51ee6c
je 0x51ee42
pop ebp
inc esp
pushal
push edi
pop ebx
jnp 0x51ee84
push 0xec084
push eax
dec esp
pop eax
jnp 0x51eeb9
pop esp
inc edi
pop edx
inc edi
push ecx
dec edx
pop ecx
inc esp
add byte [ebp - 0x77], al
test byte [ebp - 0x3a0], bh
ret
sub al, 0x24
and al, 0x8d
lodsd eax, dword [esi]
mov ah, 0x18
invalid
lea ebp, [ebp - 0xfe74c]
lock xchg dword [esp], ebp
call 0x51ee9d
pop esi
push ecx
add byte [esi + 0x51], bl
pop esp
outsd dx, dword [esi]
dec ebp
imul ecx, dword [ecx + 0x6b], 0x42
inc edx
pop eax
js 0x51eecb
bound eax, qword [ebp + 0x4b]
imul ebp, dword [ecx + 0x7b], 0x65
inc bx
arpl word [eax + 0x58], bx
dec ebx
inc ebp
dec ecx
pushal
dec esp
pushal
pop edx
dec ebx
push esp
push dword [esp]
add dword [esp], 0xfff11aa1
add dword [esp + 4], 0x7e
ret
outsd dx, dword [esi]
inc dx
inc esi
dec ecx
inc ebx
push ebp
push esi
pop eax
inc edi
push eax
jns 0x51ef3f
insb byte es:[edi], dx
push ecx
outsb dx, byte [si]
pushal
push ecx
inc ecx
jns 0x51ef30
push edx
dec eax
pushal
pushal
pushal
popal
push edx
popal
pop esp
inc ebp
dec ebx
insd dword es:[edi], dx
pop edi
dec ecx
insb byte es:[edi], dx
pop edx
push 0x61505b5b
push esi
dec ebx
dec esp
inc edx
pop esp
pop eax
pop edx
push eax
inc edi
arpl word [edx + 0x59], bp
inc esp
push edx
imul eax, dword [esi + 0x56], 0x6c5e476f
mov edi, dword [ebp + 8]
cmp edi, 0xfffffffe
push 0x298
push ax
lahf
lock xchg word [esp], ax
push esi
call 0x51ef83
mov dword [ebp - 0x1d4], eax
mul edx
jmp 0x63cb4aea
dec edx
inc edi
mov eax, 0x140c
imul esp, dword [bp + si + 0x45], 0x41
dec ebx
pop eax
inc ecx
arpl di, si
shl byte [ebp + 0x48], 1
push ecx
inc eax
mov ecx, edi
mov ecx, esi
push ebp
call fcn.00523ba3
mov byte [esi], 0xa
pop ecx
bound eax, qword [ebx + 0x55]
add dh, al
push es
or bl, byte [ecx + 0x62]
inc ebx
push ebp
dec edi
dec ecx
outsb dx, byte [esi]
inc ebp
insb byte es:[edi], dx
inc ebp
inc edi
pop ebp
pushal
pop edx
dec ecx
mov dword [ebp - 8], eax
or cx, ax
inc esp
jnp 0x51efbb
jns 0x51efbe
jnp 0x51efb4
dec eax
mov dword [ebp - 0x24], edi
outsd dx, dword [esi]
pop ebp
jne 0x51ef51
mov ecx, dword [eax + 0x3c]
call fcn.0051e07c
dec edx
popal
mov esi, dword [esp]
lea esp, [esp + 4]
call 0x51ef8f
mov dword [esp], edi
mov edi, 0x128
cmovne edi, dword [esp + 0xa]
add esi, edi
lock xchg dword [esp + 0xa], esi
lock xchg dword [esp], edi
lea esp, [esp + 4]
pop esi
lock xchg word [esp], ax
sahf
mov ax, word [esp]
add al, 0x24
lea esp, [esp + 2]
ret
jnp 0x51f017
bound eax, qword [ecx + 0x68]
jnp 0x51f004
inc ecx
push 0x45417b67
inc ebp
pop esi
pop esi
push edx
jmp 0x34b029a0
in al, dx
push eax
pop ebx
insd dword es:[edi], dx
popaw
push edx
pop ebp
pop esp
push esp
inc eax
outsb dx, byte [esi]
dec eax
pop edi
inc eax
jnp 0x51f091
cmp esi, 2
inc byte [edx]
js 0x51f094
push 0x478d4a5a
add dword [ebx + 0xfa81ce], ecx
add al, 0
add byte [edi + 0x62], ah
inc esi
push ebx
pop edi
inc edx
inc ecx
push ecx
jns 0x51f098
push esp
call fcn.0051f644
push ebp
jnp 0x51efc7
inc ebp
adc al, 0x81
jl 0x51f065
and al, 0x35
sub edi, dword [esi]
adc dword [ecx - 0x3a], esi
inc eax
and al, 1
cmp ecx, 0x7916c47d
jne 0x51f0bc
dec ecx
inc edx
and dword [eax], 0
inc eax
push eax
pop ebx
shl eax, 2
je 0x51f072
or al, 0xf6
les eax, [esi + edx*2 + 0x4c]
test ah, 0x44
push esi
dec esp
push esp
dec edi
dec edx
pop edx
push 6
dec esi
pop eax
bound eax, qword [ebp + 0x5b5949f6]
dec ecx
bound eax, qword [edi + 0x43]
push 0x60
dec eax
dec esi
inc esp
push ecx
pop esi
pop ebp
imul esi, edi, 0x6d5f55d0
pop ebp
inc ebp
push esp
push es
pop edx
push ax
js 0x51f0e1
dec esp
dec edi
push eax
dec edi
pop ebp
imul ecx, dword [ebx], 0xfffffff1
mov ebx, 0xc00
add byte [edi + 0x50], ah
popal
inc edi
push esp
push 0x435a4759
pop ebp
push es
inc edi
dec ebp
inc edi
popal
push ecx
js 0x51f119
push ecx
bound edx, qword [edx + 0x78]
inc esp
dec esi
and dword gs:[eax + 0x20], 0
and dword [eax + 0x20], 0
mov byte [eax + 0x1c], 1
cmp eax, 0xc2cee097
cmove edx, ecx
mov dword [eax + 0x18], 9
or eax, 0xffffffff
push ecx
push ecx
push edi
push eax
push 0xdd168b32
push 0xffffffffffffffd0
push 5
push ebp
call fcn.0051f137
push edi
pop edi
popal
inc edi
dec ebp
outsb dx, byte [esi]
cmp eax, ebx
pop ecx
insd dword es:[edi], dx
inc ebp
push eax
inc eax
dec ebp
pop ecx
insd dword es:[edi], dx
push ecx
call fcn.00518c92
add byte [eax], al
outsd dx, dword [esi]
push edi
push esi
cmp ecx, ebx
pop ebx
inc ecx
dec edi
push eax
pop edi
inc edi
jnp 0x51f174
inc eax
pop esi
dec esi
inc edi
insd dword es:[edi], dx
js 0x51f170
push ebx
imul edx, dword [edi + 0x6a], 0
mov edi, edi
push edx
lea edx, [ecx + 8]
jmp 0x51f1f5
inc ebp
inc ecx
dec esi
lea esp, [esp]
movzx eax, al
add byte [ebx], bh
stc
inc edi
pop edx
outsb dx, byte [esi]
inc ecx
pop esp
pop ebx
push ecx
inc esp
inc esi
push 0x44
mov eax, edi
dec eax
dec esi
insb byte es:[edi], dx
fld st(0)
pop ebx
dec edi
push esi
insd dword es:[edi], dx
xchg byte [ebx + 0x4a], al
dec edi
bound ebp, qword [edi - 0x7d]
les edx, [eax]
insb byte es:[edi], dx
inc bp
push esi
push 0x4b6a5e5c
push edi
test edi, edi
push 0x394
pushfd
lea esp, [esp - 4]
mov dword [esp], ecx
call 0x51f228
inc eax
outsb dx, byte [esi]
outsb dx, byte [esi]
pop edx
push eax
pop bp
outsb dx, byte gs:[esi]
push si
jnp 0x51f237
dec esp
pop cx
push 0x5c4b795c
inc esp
push ebp
imul eax, dword [ecx + 0x6b], 0x65
insb byte es:[edi], dx
dec esi
imul edx, dword [ebp + eax*2 + 0x68], 0x516e4b62
pushal
dec ebx
pop eax
inc ecx
push ebp
push ebx
js 0x51f25f
imul ecx, dword [ecx + 0x44], 0x51686859
push ebx
jns 0x51f27f
push eax
cli
add byte [eax], al
add byte [edi], cl
dec eax
inc esp
and al, 0xc
imul ebx, dword [edx + 0x61], 0x60
mov edx, dword [ebp + 8]
cmp dword [esp + 0x68], 0xd2feb037
cmove edx, esi
and eax, 0x3f
cmp eax, 0x2d6f3cf5
cmove esi, eax
sar edx, 6
cmp dword [esp - 0x80], 0xf3755425
je 0x542edb
push edi
cmp dword [esp + 0x60], 0x2dce07e5
jne 0x542ee1
push 0xf8bc858b
invalid
arpl word [eax + 0x61], di
push ecx
push edi
ret
imul edi, eax, 0x38
mov dword [ebp - 4], edx
pushf
call 0x542eee
mov dword [esp], esi
call 0x542f71
imul ebp, dword [eax + 0x4d], 0x417b454f
pop esi
pop edi
pop ecx
insd dword es:[edi], dx
pop edi
jns 0x542f68
pop edi
pop ecx
push 0x5142506b
imul esp, dword [ebx + ebx*2 + 0x67], 0x5c6e7949
popal
bound esp, qword [ebx + 0x54]
imul edx, dword [ecx + 0x43], 0x4c78405c
inc ecx
dec edi
pop edi
dec esp
push edx
inc esi
push ecx
dec edx
pop edi
inc ecx
inc edi
jnp 0x542f7c
pop ecx
pop ebx
dec eax
push ebx
inc ecx
pop ecx
pop ebx
js 0x542f79
push eax
push ebx
push esi
dec eax
pushal
inc edi
insd dword es:[edi], dx
jnp 0x542f84
dec esp
push ebx
pop edi
pop ebp
pop edi
pop eax
pop eax
dec edi
dec eax
push edx
dec edx
popal
jns 0x542fb3
dec edx
dec edi
push dx
dec eax
dec esp
push ebx
inc edi
dec eax
dec esp
arpl word [di + 0x64], ax
pop edx
push 0x5b
bound ebx, qword [ebx + 0x53]
pop edi
push ebx
outsb dx, byte [esi]
push 0x6d
imul edx, dword [eax + 0x66], 0x694f654e
pop esi
lea esp, [esp - 4]
mov dword [esp], ebp
lea ebp, [esp + 0xa]
or al, byte [eax]
add byte [eax], al
call 0x542f85
mov dword [esp], ecx
push ebx
mov ecx, esi
add byte [ecx - 0x76acdbf4], cl
int1
imul ebx, edx, 4
add ecx, ebx
add ecx, 0xffedf12a
push word [esp + 0x10]
popf
mov eax, dword [ecx]
lock xchg dword [esp], ebx
lea esp, [esp + 4]
pop ecx
pop ebp
pop esi
lea esp, [esp + 2]
mov dword [ebp - 8], eax
clc
cmp byte [eax + edi + 0x29], 0
push 0x1b0
pushf
push ebp
call fcn.00543039
jne 0x542fde
js 0x54302d
imul ecx, dword [esi + 0x5b], 0x2c8d8b56
invalid
pop ecx
std
jmp fcn.005431cf
add byte [eax + 0x52], ah
mov eax, dword [edi + 4]
sbb byte [ecx + 0x59], bh
push esi
dec esp
ret