Function at 0x513da0
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
nop dword [eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov ecx, dword [ebp + 0xc]
je 0x512d9e
jne 0x512d9e
call dword [ebx + 0xc]
mov eax, esi
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, 0
test ecx, ecx
je 0x512e15
lea eax, [ebp - 0x34]
push 0x1c
push eax
push ecx
mov edi, ecx
je 0x512e0b
jne 0x512e0b
jmp 0x8460f6a2
test ecx, ecx
je 0x512ded
test eax, eax
je 0x512ded
cmp edi, esi
je 0x512d2f
jne 0x512d2f
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
cmova edi, esi
test edi, edi
mov dword [ebp - 0x34], edi
jle 0x512ded
mov dword [ebp - 0x10], eax
je 0x512df3
jne 0x512df3
je 0xff5197ae
push esi
push 0
call dword [ebx]
mov ecx, dword [ebp + 0xc]
test edi, edi
adc ecx, dword [ebx - 0x7af3b3]
je 0x512ded
je 0x512d19
jne 0x512d19
je 0x74b2d261
rep movsb byte es:[edi], byte [esi]
popal
je 0x512de4
jne 0x512de5
jne 0x512de4
jae 0x512d81
je 0x512939
test dl, al
sti
invalid
jne 0x511193
add byte [eax], al
add byte [eax], al
push 0x3000
je 0x512d54
jne 0x512d54
je 0x511263
jne 0x511529
jmp 0x751d7b26
mov ecx, dword [ebp - 0x34]
je 0x512d6a
jne 0x512d6a
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
xor eax, eax
je 0x512cf6
jne 0x512cf6
je 0x5123fe
jne 0x512c67
add byte [eax], al
add byte [eax], al
test ecx, ecx
je 0x512ced
push 0x8000
push 0
push ecx
mov esi, eax
je 0x512ce8
jne 0x512ce8
add byte [eax], al
add byte [eax], al
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
inc ebp
invalid
je 0x512dc2
jne 0x512dc2
je 0xe8c6b957
pushal
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
je 0x512d97
jne 0x512d97
je 0x511012
jne 0x5115b9
jmp 0x8959820e
call dword [ebx + 8]
mov ecx, edi
mov edi, dword [ebp - 0x28]
xor eax, eax
test esi, esi
je 0x512ded
push 4
je 0x512d81
jne 0x512d81
nop word [eax + eax]
push ebp
mov ebp, esp
push ebx
je 0x512fb1
jne 0x512fb1
je 0x8c41abd1
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
jne 0x512e34
mov edx, dword [ebp + 0x10]
jmp 0x512f57
add esp, 0x1c
pop esi
pop edi
je 0x512eb8
jne 0x512eb8
je 0x8c3da3ea
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp + 0x10]
jmp 0x512f50
push ebp
adc cl, ch
ljmp 0xf2e
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x38]
test eax, eax
jle 0x512f57
je 0x512edc
jne 0x512edc
je 0x8c39ac13
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
rep movsb byte es:[edi], byte [esi]
dec ebp
loopne 0x512e7e
movsb byte es:[edi], byte [esi]
popal
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x10]
je 0x512e5b
jne 0x512e5b
add byte [eax], al
add byte [eax], al
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
cmp word [eax + 6], 0
je 0x512ecd
jne 0x512ecd
je 0xe896b8ed
mov al, byte ds:[ebp - 0x18]
rep stosb byte es:[edi], al
popal
je 0x512e42
jne 0x512e42
je 0x10148c17
pop ebx
pop ebp
ret
je 0x512f57
test byte [esi + 0xf000000], dl
test dh, cl
add byte [eax], al
add byte [edi], cl
test eax, ecx
add byte [eax], al
add byte [ecx + eax*4 + 0xf], dh
test dh, ch
add byte [eax], al
add byte [edi], cl
test eax, ebp
add byte [eax], al
add cl, ch
je 0x512f95
jne 0x512f95
je 0x512e50
je 0x512fc3
jne 0x512fc3
jmp 0x3557d6b
mov ecx, dword [esi + 4]
add ecx, dword [ebp - 0x24]
je 0x512ee8
jne 0x512ee8
je 0x45da3d75
mov dword [esi], ecx
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x1c], ecx
loopne 0x512eb4
inc ebp
call 0xe49eb7f4
je 0x512ebb
jne 0x512ebb
add byte [eax], al
add byte [eax], al
je 0x512f50
test ecx, ecx
je 0x512f50
je 0x512f5b
jne 0x512f5b
je 0x895d7d97
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x20], eax
add ebx, dword [ebp - 0x24]
add ecx, dword [ebp + 8]
test eax, eax
mov dword [ebp - 0x1c], ecx
inc ebp
loopne 0x512f12
pop ebp
fadd qword [ebx]
dec ebp
or byte [ebp - 0x1bb27640], al
je 0x512ff3
jne 0x512ff3
jmp 0x4ddb2e5b
xor edi, edi
mov dword [ebp - 0x24], ecx
movzx ecx, word [eax + 0x14]
lea esi, [eax + ecx + 0x20]
je 0x512f3b
jne 0x512f3b
add byte [eax], al
add byte [eax], al
mov eax, dword [esi + 8]
test eax, eax
jne 0x512fd4
jmp 0x512e70
je 0x512f55
jne 0x512f55
jmp 0x1bc54de2
mov dword [esi], ebx
je 0x512f74
jne 0x512f74
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x28], ebx
pushal
mov esi, dword [ebp - 0x1c]
je 0x512e84
jne 0x512e84
mov eax, dword [edx]
inc edi
add esi, 0x28
movzx eax, word [eax + 6]
cmp edi, eax
jae 0x512e50
mov eax, dword [esi + 8]
test eax, eax
je 0x512e70
je 0x512fd4
jne 0x512fd4
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], edi
pushal
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
xor eax, eax
je 0x512eab
jne 0x512eab
jmp 0xecd4860c
push edi
push esi
sub esp, 0x1c
je 0x512e9b
jne 0x512e9b
jmp 0xf557a52
mov ecx, dword [edx + 4]
je 0x512f26
jne 0x512f26
je 0xf558e63
mov ebx, dword [esi + 4]
je 0x512f08
test byte [ebx], ch
invalid
jne 0x512f08
je 0x5114bc
jne 0x51163d
add byte [eax], al
add byte [eax], al
mov dword [ebp - 0x18], ebx
jle 0x512f50
test ebx, ebx
je 0x512efc
jne 0x512efc
nop word [eax + eax]
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 1
je 0x5131e9
jne 0x5131e9
je 0x84606434
push dword [ebx]
je 0x51310d
aam 0
add byte [eax], al
jne 0x51310d
je 0x846102c9
test dl, dl
je 0x5131c3
jp 0x513048
add byte [eax], al
add byte [edi], cl
test dword [ecx + eax], esi
add byte [edi], cl
test byte [edi + 0xfffffe2], dh
test esi, ebx
in al, dx
invalid
jne 0x5131c3
je 0x51130c
jne 0x511d39
jmp 0x22fb56f
jne 0x513240
mov esi, edx
mov eax, edx
je 0x5130ae
jne 0x5130ae
je 0x511529
jne 0x512a9e
push dword [ebx + 8]
je 0x513031
jne 0x513031
je 0xd1daf884
add eax, ecx
mov ecx, edx
shr ecx, 0x11
and ecx, 0x200
or ecx, dword [eax + edi*4]
mov eax, dword [ebx + 8]
test eax, eax
jne 0x513140
je 0x51309f
jne 0x51309f
jmp 0xf91f399
test dl, 0x40
jne 0x5131d6
je 0x513041
jne 0x513041
je 0xe913023b
mov ecx, edx
shr eax, 0x1f
pop ds
and esi, 0x20000000
shr ecx, 0x1b
mov dword [esp + 4], eax
mov eax, esi
and ecx, 8
shr eax, 0x19
mov edi, dword [esp + 4]
lea eax, [esp + eax + 8]
je 0x51307f
jne 0x51307f
jmp 0x1492e7e8
movzx eax, word [ecx + 0x14]
lea ebx, [ecx + eax + 0x20]
mov edx, dword [ebx + 0x1c]
test edx, 0x2000000
jne 0x513240
jmp 0x513062
test eax, eax
je 0x513236
jne 0x513236
je 0x512e30
jne 0x511220
je 0x44dd307b
push 0xffffffffffffffff
mov eax, dword [esp + 0x4c]
and al, 0x4c
call dword [eax + 0x10]
jmp 0x513240
add esp, 0x2c
je 0x51312f
jne 0x51312f
je 0x51104c
jne 0x51263f
jmp 0x5dac9091
pop esi
pop edi
pop ebx
pop ebp
ret
je 0x513240
nop dword [eax]
mov edx, eax
lea eax, [esp + 0x28]
push eax
push ecx
push edx
push dword [ebx]
je 0x513176
jne 0x513176
jmp 0x8371f3d7
add edx, 0x20
cmp dword [edx], 0
je 0x513136
jne 0x513136
jmp 0xbcc4f698
cmp ebp, eax
jae 0x51311b
mov edx, dword [ebx + 0x1c]
test edx, 0x2000000
je 0x51305c
jne 0x51305c
je 0x50757605
mov eax, dword [esp + 0x50]
call dword [eax + 4]
test esi, esi
je 0x5130f1
test eax, eax
je 0x5130f1
je 0x513076
jne 0x513076
add byte [eax], al
add byte [eax], al
mov dword [esp], eax
je 0x51311b
mov ecx, dword [esp]
xor ebp, ebp
je 0x5130d5
jne 0x5130d5
je 0x512340
jne 0x511cbf
jns 0x513240
mov edx, dword [esp]
add edx, 0x24
cmp dword [edx], 0
jne 0x513140
jmp 0x513240
mov edx, dword [esp]
je 0x513150
jne 0x513150
add byte [eax], al
add byte [eax], al
mov dword [esp + 0xc], 8
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 4
mov dword [esp + 0x18], 0x10
mov dword [esp + 0x1c], 0x80
mov dword [esp + 0x20], 0x20
mov dword [esp + 0x24], 0x40
mov eax, dword [eax]
cmp word [eax + 6], 0
je 0x51319d
jne 0x51319d
je 0xff30b649
je 0x51311b
invalid
nop dword [eax]
mov eax, dword [esp + 0x44]
inc ebp
add ebx, 0x28
mov eax, dword [eax]
mov dword [esp], eax
movzx eax, word [eax + 6]
je 0x51315b
jne 0x51315b
nop dword [eax]
mov eax, dword [esp + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + eax + 0x58]
ret
inc ebx
shr eax, 1
cmp ebx, eax
jae 0x5132d0
je 0x51341f
jne 0x51341f
jmp 0xc54a70d
je 0x51330b
add ecx, dword [esp]
cmp dword [esp + 0x24], 0
je 0x51336d
mov edi, dword [esp + 0x28]
jmp 0x5132e0
jmp 0x513360
je 0x513429
jne 0x513429
add byte [eax], al
add byte [eax], al
je 0x51334e
jne 0x51334e
je 0x20758775
mov edx, dword [esp + 0x20]
and eax, 0xfff
add dword [eax + esi], edx
mov edi, dword [ecx + 4]
jmp 0x513410
add esp, 4
pop esi
pop edi
pop ebx
je 0x51343e
jne 0x51343e
add byte [eax], al
add byte [eax], al
cmp ebp, eax
jae 0x513340
movzx edx, word [ecx + ebp*2 + 8]
mov eax, edx
and eax, 0xf000
cmp eax, 0x3000
jne 0x513360
je 0x51338c
jne 0x51338c
je 0x34dcc3a8
mov esi, dword [ebx + ecx]
add ecx, ebx
test esi, esi
je 0x51330b
or eax, dword [ecx]
fld dword [ebp + 0x74c274f6]
xchg ebp, eax
je 0x5132e0
jne 0x5132e0
jmp 0x5cc691c6
je 0x5133ae
jne 0x5133ae
je 0x511541
jne 0x512cf6
je 0x464976f1
lea eax, [ebx - 8]
inc ebp
shr eax, 1
je 0x513321
jne 0x513321
jmp 0x79dcd1e3
je 0x51330b
mov edi, dword [ecx + 4]
mov eax, edi
and eax, 0xfffffffe
cmp eax, 8
je 0x5133f5
jne 0x5133f5
je 0x50a78ad5
push ebx
push edi
push esi
push eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
je 0x5133c9
jne 0x5133c9
and edx, 0xfff
mov eax, dword [edx + esi]
xor eax, edi
add eax, dword [esp + 0x20]
mov dword [edx + esi], eax
mov ebx, dword [ecx + 4]
je 0x5132c3
jne 0x5132c3
jmp 0x89558d3d
mov ebx, dword [ecx + 4]
mov eax, ebx
and eax, 0xfffffffe
cmp eax, 8
je 0x513340
add esi, dword [esp]
xor ebp, ebp
jmp 0x513325
cmp dword [eax + 0xa4], 0
je 0x51330b
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0xa0]
mov esi, dword [edx + ecx]
mov dword [esp], edx
test esi, esi
je 0x513295
jne 0x513295
je 0xff26b808
je 0x5132d0
invalid
add esi, dword [esp]
xor ebx, ebx
jmp 0x51341f
lea eax, [edi - 8]
je 0x513281
jne 0x513281
movzx eax, word [ecx + ebx*2 + 8]
je 0x513441
jne 0x513441
jmp 0x16068b8
mov esi, dword [edi + ecx]
add ecx, edi
test esi, esi
je 0x51336b
jne 0x51336b
je 0x8a3af79f
pop ebp
ret
mov ebp, eax
and ebp, 0xf000
cmp ebp, 0x3000
jne 0x513410
lds eax, [ecx + 0xf000e5]
add byte [ecx + 0x3000fd], al
add byte [ebp - 0x41], dh
je 0x5132e6
jne 0x5132e6
nop dword [eax]
mov ecx, dword [esp + 4]
imul eax, dword [ecx], 0x343fd
add eax, 0x269ec3
mov dword [ecx], eax
shr eax, 0x10
je 0x513478
jne 0x513478
and eax, 0x7fff
ret
shr esi, 0x12
and esi, 0xfffffffe
lea esi, [esi + esi*4]
sub ebx, esi
mov byte [edx], bl
je 0x5134cc
jne 0x5134cc
je 0x5112ec
jne 0x511be2
je 0x1149027
pop esi
pop ebx
ret
add byte [eax], al
add byte [edx + 0x48], al
inc edx
dec eax
jne 0x5134e0
je 0x5134c5
jne 0x5134c5
jmp 0x14758164
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
nop dword [eax]
imul ecx, ecx, 0x343fd
add ecx, 0x269ec3
mov ebx, ecx
shr ebx, 0x10
je 0x5134f7
jne 0x5134f7
je 0xe6d31384
mov esi, ebx
and esi, 0x7fff
imul esi, esi, 0xcccd
je 0x5134a6
invalid
jne 0x5134a6
je 0x75dba962
mov byte [ebx + 0x74], dl
sbb dword [ebp + 0x17], esi
je 0x316deb2a
movzx ebx, byte [ecx + esi]
test bl, bl
je 0x51354c
xor bl, byte [edx + esi]
mov byte [ecx + esi], bl
inc esi
je 0x513548
jne 0x513548
je 0x2495c086
adc byte [ebp - 0x74e88b40], al
dec esp
and al, 0x14
mov edx, dword [esp + 0xc]
xor esi, esi
nop
je 0x513517
jne 0x513517
add byte [eax], al
add byte [eax], al
cmp eax, esi
jne 0x513540
pop esi
pop ebx
ret
js 0x513be0
add eax, dword [ebp - 0x24]
mov ebx, dword [ebp + 8]
xor ecx, ecx
nop dword [eax + eax]
je 0x513934
jne 0x513934
je 0x468b9d1
je 0x5139db
add byte [eax], al
jne 0x5139db
jmp 0x161b9de
je 0x5136e1
mov eax, dword [esi + ebx + 4]
add ebx, 4
test eax, eax
je 0x513bd5
jne 0x513bd5
jmp 0x84704551
nop word [eax + eax]
je 0x5138a6
jne 0x5138a6
add byte [eax], al
add byte [eax], al
movzx ecx, byte [ebp + eax - 0x48]
test cl, cl
je 0x513b4c
xor cl, byte [ebp + eax - 0x148]
mov byte [ebp + eax - 0x48], cl
inc eax
je 0x513b46
jne 0x513b46
jmp 0x3d3db780
je 0x51390d
jne 0x51390d
je 0x5113b2
jne 0x512b3a
add byte [eax], al
add byte [eax], al
je 0x513834
jne 0x513834
je 0x513460
jne 0x5119eb
add byte [eax], al
add byte [eax], al
test eax, eax
mov dword [edi], eax
je 0x5136e1
je 0x51366c
jne 0x51366c
je 0x5111dc
jne 0x511541
add byte [eax], al
add byte [eax], al
mov esi, dword [edx]
test esi, esi
je 0x513c50
mov eax, dword [ebp - 0x10]
je 0x5136f1
jne 0x5136f1
je 0x5133ae
jne 0x51163d
je 0x42bbad4
je 0x513aa1
add byte [eax], al
cmp dword [ebp + 0x14], 0
jne 0x513845
xor ebx, ebx
je 0x5135e7
jne 0x5135e7
je 0xd8db1216
xor ebx, ebx
mov eax, ebx
add esp, 0x23c
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [edx + 0x10]
je 0x513a47
jne 0x513a47
add byte [eax], al
add byte [eax], al
push 0x8000
push 0
push ecx
mov eax, dword [ebp + 8]
call dword [eax + 0xc]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp - 0x20]
je 0x51395f
jne 0x51395f
je 0xcdef7b2
test eax, eax
lea ecx, [ecx + eax]
movzx eax, ax
add dword [edi], ecx
mov bh, 0xc0
cmovns eax, ecx
push eax
push dword [ebp - 0x18]
mov eax, dword [ebp + 8]
call dword [eax + 0x18]
test eax, eax
mov dword [edi + ebx], eax
je 0x5135cb
jne 0x5135cb
add byte [eax], al
add byte [eax], al
push 0x14
push esi
call dword [ecx + 0x20]
test eax, eax
jne 0x5136e3
mov ecx, dword [ebp + 0x14]
lea eax, [edi + 2]
mov dword [ebp - 0x10], edi
je 0x513b76
jne 0x513b76
mov dword [ebp - 0x1c], ecx
push 4
push 0x3000
push esi
push 0
mov eax, dword [ebp + 8]
je 0x513bb0
jne 0x513bb0
je 0xc031ad1d
mov dword [ebp - 0x20], esi
mov edi, 0
add byte [eax], al
add byte [eax], al
mov dword [ebp - 0x14], 0
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
lea esi, [eax*4 + 4]
test ecx, ecx
je 0x513ab3
push 0x1c
je 0x513a06
jne 0x513a06
je 0x86358553
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
leave
je 0x513890
cmp dword [ebp - 0x14], 0
je 0x513860
jne 0x513860
je 0x511a68
jne 0x513321
je 0xff41bd00
jne 0x5136e3
invalid
mov eax, dword [esi + 0xc]
test eax, eax
je 0x5136e3
je 0x513984
jne 0x513984
mov edx, eax
shr edx, 0x10
mov esi, edx
and esi, 0x7fff
imul esi, esi, 0xcccd
shr esi, 0x12
and esi, 0xfffffffe
lea esi, [esi + esi*4]
je 0x513c72
jne 0x513c72
je 0x83557ec3
mov eax, dword [esi + 4]
add edi, 4
add esi, 4
test eax, eax
mov dword [ebx + eax*4], 0xc08504c6
je 0x513aa1
test eax, eax
je 0x51359d
jne 0x51359d
je 0x513041
jne 0x511475
jmp 0x45dc66d8
je 0x513890
mov eax, dword [ebp - 0x14]
cmp edi, esi
je 0x5139bd
jne 0x5139bd
je 0x5128f8
jne 0x511b1c
je 0x1f6066eb
nop word cs:[eax + eax]
test byte [eax], al
add byte [eax], al
add byte [eax], al
nop dword [eax + eax]
test ecx, ecx
je 0x513712
je 0x513704
jne 0x513704
je 0x102d8635
mov ecx, dword [ebp - 0x24]
je 0x513729
test byte [edx - 2], bh
invalid
jne 0x513729
jmp 0x8bb21138
jle 0x513890
pushal
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x28]
je 0x513a2b
jne 0x513a2b
add byte [eax], al
add byte [eax], al
test ecx, ecx
je 0x513900
add eax, dword [ebp - 0x10]
je 0x513b9c
jne 0x513b9c
add byte [eax], al
add byte [eax], al
lea eax, [ebp - 0x148]
jmp 0x513b34
je 0x513b31
jne 0x513b31
jmp 0x444ef97a
imul eax, eax, 0x343fd
add eax, 0x269ec3
je 0x51380a
jne 0x51380a
je 0x512cd0
jne 0x5121cd
add byte [eax], al
add byte [eax], al
movzx edx, byte [eax + ecx]
mov byte [ebp + ecx - 0x148], dl
cmp byte [eax + ecx], 0
lea ecx, [ecx + 1]
jne 0x5135b0
mov eax, 0xffffff00
je 0x513c35
jne 0x513c35
je 0x7edb38e8
test edi, edi
mov dword [esi + 8], edi
je 0x5136e1
or byte [edi], cl
test byte [edi - 3], dh
invalid
je 0x513a88
jne 0x513a88
je 0x51254b
jne 0x511ab6
je 0xff96bd97
je 0x5138cf
invalid
jne 0x5138cf
je 0x512b3a
jne 0x511faf
call dword [eax + 0x14]
mov ebx, eax
cmp eax, 0xffffffff
je 0x5136e1
mov eax, dword [ebp + 0xc]
je 0x513790
jne 0x513790
add byte [eax], al
add byte [eax], al
mov dword [ebp - 0x2c], ecx
cmova edi, esi
test edi, edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x28], eax
je 0x5138b6
jne 0x5138b6
add byte [eax], al
add byte [eax], al
movzx edx, byte [eax + ecx]
mov byte [ebp + ecx - 0x148], dl
cmp byte [eax + ecx], 0
lea ecx, [ecx + 1]
jne 0x5135be
mov eax, 0xffffff00
nop dword [eax + eax]
je 0x513a5d
jne 0x513a5d
je 0x51097f97
lea eax, [ebp - 0x48]
push eax
push ecx
mov eax, dword [ebp + 8]
mov edi, ecx
call dword [eax + 8]
je 0x513aae
jne 0x513aae
je 0x513429
jne 0x51101d
mov ecx, dword [ebp - 0x48]
rep movsb byte es:[edi], byte [esi]
popal
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
je 0x513881
jne 0x513881
add byte [eax], al
add byte [eax], al
add esi, eax
add edi, eax
mov eax, dword [esi]
test eax, eax
je 0x5136c1
jne 0x5136c1
je 0x59df070
movzx ecx, byte [ebp + eax - 0x48]
test cl, cl
je 0x5138e6
mov eax, 0x840fc984
jl 0x513a66
invalid
xor cl, byte [ebp + eax - 0x148]
mov byte [ebp + eax - 0x48], cl
inc eax
jne 0x513a00
je 0x5138e6
jne 0x5138e6
add byte [eax], al
add byte [eax], al
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
mov dword [esi + 0xc], ecx
mov dword [edi + eax*4], ebx
je 0x5136a2
jne 0x5136a2
jmp 0x8431b030
mov esi, dword [ebp - 0x20]
add esi, 0x14
push 0x14
je 0x513ad8
jne 0x513ad8
jmp 0x7ddd343b
mov ecx, edi
mov edi, dword [ebp - 0x3c]
test esi, esi
mov dword [ebp - 0x18], ebx
je 0x513890
je 0x513772
jne 0x513772
je 0x51341f
jne 0x512c8e
je 0x896c632
push esi
mov eax, dword [ebp + 8]
call dword [eax + 0x20]
mov edi, dword [ebp + 0x14]
test eax, eax
mov ebx, 1
mov ecx, edi
je 0x5137ed
jne 0x5137ed
je 0x511012
jne 0x5131e9
add byte [eax], al
add byte [eax], al
mov eax, dword [esi]
test eax, eax
jne 0x5136c7
jmp 0x513aa1
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x513898
jmp 0x513712
add eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
je 0x51399c
jne 0x51399c
je 0x145c059
jne 0x513c40
add byte [eax], al
lea eax, [ebp - 0x148]
push eax
push dword [ebp - 0x18]
call dword [ebx + 0x18]
test eax, eax
mov dword [edi], eax
jne 0x51366c
jmp 0x5136e1
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x5137fe
jmp 0x5136e3
xor ecx, ecx
nop
je 0x5135be
jne 0x5135be
add byte [eax], al
add byte [eax], al
call dword [eax]
test edi, edi
mov dword [ebp - 0x14], eax
je 0x513b13
je 0x5137c4
jne 0x5137c4
je 0x512391
jne 0x5128aa
jne 0x5138a6
jmp 0x513aa1
movzx eax, ax
push eax
push dword [ebp - 0x18]
mov eax, dword [ebp + 8]
call dword [eax + 0x18]
je 0x513688
jne 0x513688
mov eax, dword [edi]
mov ebx, 1
cmp dword [eax + 0x84], 0
je 0x5136e3
mov edi, dword [edi + 4]
mov esi, dword [eax + 0x80]
mov ecx, dword [ebp + 8]
add esi, edi
je 0x513753
jne 0x513753
je 0x5128ca
jne 0x5116b2
je 0x1f606a9f
nop word cs:[eax + eax]
test byte [eax], al
add byte [eax], al
add byte [eax], al
nop
je 0x513600
jne 0x513600
add byte [eax], al
add byte [eax], al
mov esi, dword [edx + 0x10]
add esi, dword [ebp - 0x10]
mov edi, esi
je 0x513b07
jne 0x513b07
je 0x5134c5
jne 0x51305c
je 0x94da2e9f
sub edx, esi
mov byte [ebp + ecx - 0x148], dl
or eax, 0xfffffeb8
inc ecx
jne 0x513650
je 0x513bf9
jne 0x513bf9
je 0x51337e
jne 0x512e30
nop word [eax + eax]
push ebx
push edi
push esi
mov esi, dword [esp + 0x14]
test esi, esi
je 0x513d55
jne 0x513d55
jne 0x513d22
nop word [eax + eax]
inc ebx
cmp ebx, ecx
jge 0x513cdb
mov edx, dword [eax + ebx*4]
cmp edx, 0xffffffff
je 0x513d20
jne 0x513d20
jmp 0x8b59835f
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
inc ebx
cmp ebx, ecx
jl 0x513cc5
test eax, eax
je 0x513d48
je 0x513d3d
jne 0x513d3d
jmp 0x8b598373
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x10]
test eax, eax
je 0x513cfb
jne 0x513cfb
jmp 0xd13d5e
push 0x8000
je 0x513d2d
jne 0x513d2d
je 0x513d48
mov ecx, dword [esi + 0xc]
test ecx, ecx
jle 0x513d3d
xor ebx, ebx
mov edx, dword [eax + ebx*4]
cmp edx, 0xffffffff
je 0x513cb5
jne 0x513cb5
je 0x51281e
jne 0x513860
add byte [eax], al
add byte [eax], al
je 0x513cc0
push edx
call dword [edi + 0x1c]
je 0x513cd0
jne 0x513cd0
pop edi
pop ebx
ret
push 0
push eax
call dword [edi + 0xc]
push 0x8000
je 0x513d86
jne 0x513d86
jmp 0xd13da9
push 0x8000
push 0
push eax
call dword [edi + 0xc]
mov eax, dword [esi + 4]
test eax, eax
je 0x513d33
je 0x513cf2
jne 0x513cf2
je 0x7ed472cd
je 0x513d8c
cmp dword [esi + 0x10], 0
adc byte [eax], al
je 0x513ce4
mov eax, dword [esi]
je 0x513d63
jne 0x513d63
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x28]
add eax, ecx
push 0
push 0
push ecx
call eax
mov dword [esi + 0x10], 0
je 0x513ce4
jne 0x513ce4
jmp 0xffa73df4
push 0
push esi
call dword [edi + 0xc]
pop esi
je 0x513d2a
jne 0x513d2a
nop word cs:[eax + eax]
nop dword [eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
je 0x514648
jne 0x514648
je 0x511fd3
jne 0x51334e
add byte [eax], al
add byte [eax], al
mov esi, dword [eax + 4]
jmp 0x51410d
push dword [ebp - 0x34]
push dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x24]
push ebx
mov edi, dword [ebp + 8]
je 0x5143f0
jne 0x5143f0
je 0x977c1f7
je 0x514710
add byte [eax], al
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], ebx
pushal
mov esi, dword [ebp - 0x18]
je 0x514062
jne 0x514062
mov dword [eax + 0x10], 0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], edi
mov esi, ecx
je 0x51460e
mov edx, dword [ecx + 8]
je 0x513f5e
jne 0x513f5e
add byte [eax], al
add byte [eax], al
add ecx, esi
test byte [eax + 0x17], 0x20
jne 0x51407a
call ecx
jmp 0x513f02
test ebx, ebx
jne 0x514444
je 0x513e9e
jne 0x513e9e
je 0x5130d5
jne 0x5138cf
add byte [eax], al
add byte [eax], al
jle 0x514261
pushal
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
je 0x5141fe
jne 0x5141fe
je 0x513753
jne 0x5134d5
push 0x8000
push 0
je 0x513ff9
jne 0x513ff9
je 0x511830
jne 0x5113c9
jmp 0x514090
mov eax, ebx
je 0x514078
mov dword [ebx + 0x10], 1
mov eax, ebx
jmp 0x514092
test ecx, ecx
mov dword [ebp - 0x1c], ecx
je 0x513f9b
jne 0x513f9b
add byte [eax], al
add byte [eax], al
mov esi, dword [ebp - 0x20]
and ecx, 0xfff
add dword [ecx + edx], esi
je 0x513dc1
jne 0x513dc1
call ecx
test eax, eax
je 0x514444
je 0x513eb1
jne 0x513eb1
je 0x51461b
jne 0x51461b
je 0x512fd4
jne 0x5120a5
add byte [eax], al
add byte [eax], al
mov edx, dword [ecx + 0x3c]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + 0x54]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
add ecx, edx
test ecx, ecx
mov dword [ebp - 0x1c], ecx
je 0x513e5a
jne 0x513e5a
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebx + 0x3c]
je 0x514261
jne 0x514261
jmp 0x8c298ced
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + 0x54]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
add ecx, edx
je 0x513ecb
jne 0x513ecb
add byte [eax], al
add byte [eax], al
jmp 0x513f8e
lea ecx, [esi - 8]
inc edi
shr ecx, 1
cmp edi, ecx
jae 0x5145e0
je 0x514417
jne 0x514417
jmp 0x311cdae
jle 0x514261
pushal
je 0x51449c
jne 0x51449c
add byte [eax], al
add byte [eax], al
je 0x513dc9
je 0x51469c
jne 0x51469c
je 0xcf8b299b
shr ecx, 1
cmp edi, ecx
jae 0x51435e
movzx ecx, word [eax + edi*2 + 8]
mov ebx, ecx
and ebx, 0xf000
cmp ebx, 0x3000
jne 0x51410d
je 0x513ee0
jne 0x513ee0
add byte [eax], al
add byte [eax], al
push eax
call dword [edi + 0xc]
mov eax, dword [ebx + 4]
test eax, eax
je 0x514543
push 0x8000
je 0x51453d
jne 0x51453d
jmp 0x895580a9
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
cmp dword [edx + 0xa4], 0
je 0x513dc9
mov eax, dword [edx + 0xa0]
je 0x51422b
jne 0x51422b
add byte [eax], al
add byte [eax], al
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
add eax, dword [ebp - 0x10]
sub esi, dword [ecx + 0x34]
cmp dword [ebp - 0x34], 0
mov dword [ebp - 0x20], esi
je 0x5145d3
jne 0x5145d3
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
rep movsb byte es:[edi], byte [esi]
popal
je 0x514577
jne 0x514577
push 0
push 1
push esi
je 0x513ef8
jne 0x513ef8
je 0x315d9890
call dword [edi + 0xc]
xor eax, eax
rol byte [ebx + 0x5f5e38c4], 0x5b
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret
and ebx, 0xfff
mov ecx, dword [ebx + edx]
xor ecx, dword [ebp - 0x2c]
add ecx, dword [ebp - 0x20]
mov dword [ebx + edx], ecx
mov esi, dword [eax + 4]
jmp 0x513f80
mov ecx, dword [esi + 4]
add ecx, dword [ebp - 0x10]
mov dword [esi], ecx
je 0x5141ba
jne 0x5141ba
add byte [eax], al
add byte [eax], al
lea ecx, [esi - 8]
inc edi
je 0x513fc6
jne 0x513fc6
je 0x51310d
jne 0x513b76
add byte [eax], al
add byte [eax], al
mov ecx, esi
and ecx, 0xfffffffe
cmp ecx, 8
je 0x5145e0
add edx, dword [ebp - 0x10]
xor edi, edi
je 0x513f7c
jne 0x513f7c
test ebx, ebx
je 0x514710
test ecx, ecx
je 0x513de4
jne 0x513de4
je 0x512939
jne 0x514353
je 0x7455b1ff
mov esi, dword [eax + 4]
je 0x51412d
mov eax, 0x840fb675
add al, 0xe8
invalid
jne 0x51412d
je 0x512981
jne 0x513f5e
add byte [eax], al
add byte [eax], al
mov eax, dword [ebp - 0x24]
je 0x514606
jne 0x514606
je 0x5138b6
test ecx, ecx
jle 0x5142a1
je 0x51433e
jne 0x51433e
je 0xc7359747
mov dword [ebp - 0x1c], edx
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x18], ecx
je 0x5142ec
inc ebp
in al, dx
add byte [ecx - 0x7bf017b3], cl
and al, byte [ecx]
add byte [eax], al
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x3c], edi
je 0x51465f
jne 0x51465f
je 0x51401a
jne 0x51401a
mov ecx, dword [ebp - 0x1c]
rep movsb byte es:[edi], byte [esi]
popal
je 0x513f48
jne 0x513f48
mov dword [ebp - 0x10], ecx
je 0x514020
movzx ecx, word [edx + 0x14]
je 0x5146f9
jne 0x5146f9
je 0x8c418fba
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + eax]
adc al, 1
test edx, edx
je 0x513dc9
je 0x514043
jne 0x514043
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
je 0x513e03
jne 0x513e03
je 0x8e19b7f0
mov esi, dword [ebp - 0x38]
lea ecx, [esi + edx]
or al, 0x16
mov dword [eax], ecx
mov dword [esi + edx + 0x34], esi
mov edx, dword [eax]
mov ecx, dword [eax + 4]
cmp word [edx + 6], 0
je 0x514210
jne 0x514210
jmp 0x805d900b
mov ecx, dword [ebp + 0xc]
cmp byte [ebp - 0x30], 0
je 0x51471e
jne 0x51471e
jmp 0x101f7bda
je 0x513e7f
jne 0x513e7f
mov edx, eax
xor eax, eax
je 0x514390
jne 0x514390
add byte [eax], al
add byte [eax], al
push 4
push 0x1000
push dword [edi + 0x50]
push 0
call dword [esi]
test eax, eax
je 0x514090
mov dword [ebp - 0x28], edi
push 4
je 0x5143d3
jne 0x5143d3
add byte [eax], al
add byte [eax], al
mov edx, dword [eax]
inc edi
add esi, 0x28
movzx ecx, word [edx + 6]
cmp edi, ecx
jae 0x5141f2
je 0x5144f9
jne 0x5144f9
je 0x511d89
jne 0x513f9b
je 0x54db05
jmp 0x5146b4
add byte [ebx - 0x3fcef3b3], cl
mov ecx, dword [ebp + 0xc]
xor eax, eax
cmp dword [ecx], 0x474e5089
jne 0x514092
je 0x513f0a
jne 0x513f0a
add byte [eax], al
add byte [eax], al
mov dword [ebp - 0x2c], 0
je 0x514318
jne 0x514318
mov edx, dword [esi + eax]
add eax, esi
test edx, edx
je 0x513fb2
jne 0x513fb2
je 0x44dd0600
mov edx, eax
mov eax, dword [ecx + eax + 0x58]
add ecx, edx
mov dword [ebp - 0x2c], eax
mov al, 1
add dword [eax + 1], ebx
ror dword [ecx + 0x1b0d445], 1
mov dword [ebp - 0x30], eax
je 0x5146b4
jne 0x5146b4
jmp 0x505b8015
cmp dword [edx + ecx], 0x4550
jne 0x514092
add ecx, dword [ebp + 0xc]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
je 0x514353
jne 0x514353
add byte [eax], al
add byte [eax], al
add ecx, dword [ebp + 0xc]
test edx, edx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ebx
jle 0x514710
je 0x51414c
jne 0x51414c
push 0x3000
push 0x14
push 0
mov edi, eax
call dword [esi]
je 0x51427c
jne 0x51427c
add byte [eax], al
add byte [eax], al
push edi
call fcn.00513580
add esp, 0x10
test eax, eax
je 0x513e3e
push ebx
push edi
call 0x513010
add esp, 8
je 0x5144b9
jne 0x5144b9
movzx ebx, word [eax + edi*2 + 8]
mov ecx, ebx
and ecx, 0xf000
cmp ecx, 0x3000
jne 0x513f80
je 0x51409b
jne 0x51409b
jmp 0x757cb892
push ecx
je 0x51446b
jne 0x51446b
je 0x61bfcb
cmp dword [ebx + 0x10], 0
je 0x514474
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0x28]
je 0x51448e
jne 0x51448e
jmp 0x8e6116e0
test edx, edx
jle 0x5142ec
je 0x5140f5
jne 0x5140f5
call edx
mov dword [ebx + 0x10], 0
mov eax, dword [ebx + 8]
test eax, eax
je 0x513ffd
mov ecx, dword [ebx + 0xc]
je 0x5141a4
jne 0x5141a4
add edx, ecx
push 0
push 0
je 0x51443d
jne 0x51443d
add byte [eax], al
add byte [eax], al
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
rep movsb byte es:[edi], byte [esi]
popal
mov ebx, dword [ebp + 0xc]
je 0x514187
jne 0x514187
je 0x4dde4848
mov eax, dword [ebx]
lea ecx, [ebp - 0x44]
push ecx
push 0x40
je 0x5145a4
mov esp, 0xf406a51
test ch, bl
add byte [eax], al
add byte [edi], cl
test edi, edx
add byte [eax], al
add cl, ch
jne 0x5145a4
jmp 0x1ffc9e1
mov edx, dword [esi + 8]
test edx, edx
je 0x514590
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x1c], edx
add ebx, dword [ebp - 0x10]
je 0x5143b6
jne 0x5143b6
je 0x51435e
add edx, dword [ebp - 0x10]
xor edi, edi
jmp 0x513fd0
push 0
push eax
call dword [edi + 0xc]
push edi
or al, 0x68
add byte [eax + 0x6a0000], al
push 0x8000
push 0
push ebx
je 0x51408d
jne 0x51408d
jmp 0xab9299
cmp eax, 0x5a4d
jne 0x51431d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x3c]
je 0x5142ad
jne 0x5142ad
std
invalid
je 0x8c11a306
mov ebx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x3c]
jge 0x514541
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
jmp 0x514710
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + 0x38]
je 0x514457
jne 0x514457
je 0x8ba1b6a7
push dword [eax + 0x50]
mov esi, dword [ebp - 0x38]
jne 0x514572
push esi
call dword [edi + 4]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x5146da
jne 0x5146da
jne 0x5142d7
je 0x5142c1
jne 0x5142c1
jne 0x5145ed
jmp 0x513fb8
mov edx, dword [esi + eax]
add eax, esi
test edx, edx
je 0x513dc9
je 0x514170
jne 0x514170
je 0x511380
jne 0x512c8b
jmp 0xe9599995
mov edx, dword [ebx + 8]
jmp 0x514261
je 0x513f26
jne 0x513f26
jmp 0x815d93aa
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 4], 0xa1a0a0d
jne 0x514092
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x34], 1
mov ecx, dword [eax + 8]
je 0x514373
jne 0x514373
add byte [eax], al
add byte [eax], al
push esi
sub esp, 0x38
mov eax, dword [ebp + 0xc]
movzx eax, word [eax]
je 0x514558
jne 0x514558
jmp 0xe8ced1c3
pushal
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
je 0x5140da
mov esi, dword [eax + 4]
mov edi, esi
and edi, 0xfffffffe
cmp edi, 8
je 0x51451c
jne 0x51451c
jmp 0x6a59bc43
mov esi, dword [ebp + 8]
push 4
push 0x1000
push dword [ecx + 0x50]
push dword [ecx + 0x34]
mov edi, ecx
call dword [esi]
test eax, eax
je 0x5145c1
jne 0x5145c1
add byte [eax], al
add byte [eax], al
je 0x513ea3
xor edx, edx
cmp byte [ebp - 0x30], 0
cmovne edx, dword [ebp - 0x2c]
xor ecx, edx
je 0x513e2b
xor edi, edi
lea esi, [edx + ecx + 0x20]
mov edx, dword [esi + 8]
test edx, edx
jne 0x514504
jmp 0x514590
mov dword [esi], ebx
je 0x5142ec
jne 0x5142ec
mov dword [eax + 4], edi
je 0x514245
jne 0x514245
nop dword [eax]
inc eax
or byte [ecx + 0x5ef089c6], cl
ret