Function at 0x5198f0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
sub esp, 0x2c
push ebx
xor ebx, ebx
push esi
mov esi, dword [ebp + 0xc]
cmp eax, ebx
jne 0x519911
pop esi
mov eax, 0xffffff95
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp esi, ebx
jne 0x519922
pop esi
mov eax, 0xffffff93
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [ebp + 0x18], 0x20
jl 0x519904
cmp dword [ebp + 0x14], 2
jl 0x519915
movzx ecx, byte [esi + 1]
mov dword [ebp - 0x14], eax
movzx eax, byte [esi]
mov edx, eax
add esi, 2
and dl, 0xf
mov dword [ebp - 8], ebx
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], esi
cmp dl, 8
je 0x519965
pop esi
mov eax, 0xffffff92
pop ebx
mov esp, ebp
pop ebp
ret 0x14
test cl, 0x20
je 0x519977
pop esi
mov eax, 0xffffff91
pop ebx
mov esp, ebp
pop ebp
ret 0x14
shl eax, 8
add eax, ecx
cdq
mov ecx, 0x1f
idiv ecx
test edx, edx
je 0x519995
pop esi
mov eax, 0xffffff90
pop ebx
mov esp, ebp
pop ebp
ret 0x14
push edi
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
cmp ebx, 1
jge 0x5199c4
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x14]
cmp edi, eax
jae 0x519ae7
movzx edx, byte [edi]
mov ecx, ebx
shl edx, cl
inc edi
add ebx, 8
mov dword [ebp - 4], edi
add esi, edx
cmp ebx, 1
jl 0x5199a7
mov eax, esi
and eax, 1
dec ebx
sar esi, 1
mov dword [ebp - 0x2c], eax
cmp ebx, 2
jge 0x5199fd
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x14]
lea ebx, [ebx]
cmp edi, eax
jae 0x519ae7
movzx edx, byte [edi]
mov ecx, ebx
shl edx, cl
inc edi
add ebx, 8
mov dword [ebp - 4], edi
add esi, edx
cmp ebx, 2
jl 0x5199e0
mov eax, esi
and eax, 3
sar esi, 2
sub ebx, 2
mov dword [ebp - 0x28], eax
mov dword [ebp - 8], esi
test eax, eax
jne 0x519af5
mov esi, dword [ebp + 0xc]
xor ebx, ebx
add esi, dword [ebp + 0x14]
mov dword [ebp - 0x10], esi
cmp edi, esi
jae 0x519ae7
movzx edx, byte [edi]
mov ecx, ebx
shl edx, cl
inc edi
add ebx, 8
mov dword [ebp - 4], edi
add eax, edx
cmp ebx, 0x10
jl 0x519a21
mov edx, eax
sub ebx, 0x10
and edx, 0xffff
sar eax, 0x10
cmp ebx, 0x10
jge 0x519a73
jmp 0x519a56
mov esi, dword [ebp - 0x10]
cmp edi, esi
jae 0x519ae7
movzx esi, byte [edi]
mov ecx, ebx
shl esi, cl
inc edi
add ebx, 8
mov dword [ebp - 4], edi
add eax, esi
cmp ebx, 0x10
jl 0x519a53
mov ecx, eax
and ecx, 0xffff
sar eax, 0x10
not ecx
sub ebx, 0x10
mov dword [ebp - 8], eax
cmp edx, ecx
jne 0x51a37b
mov eax, dword [ebp - 0x14]
lea ecx, [edx + eax]
mov eax, dword [ebp + 0x10]
add eax, dword [ebp + 0x18]
cmp ecx, eax
ja 0x51a3b3
lea ecx, [edx + edi]
cmp ecx, dword [ebp - 0x10]
ja 0x519ae7
test edx, edx
je 0x519ac3
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 4]
mov al, byte [esi]
mov byte [edi], al
inc edi
inc esi
dec edx
jne 0x519ab4
mov dword [ebp - 4], esi
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
je 0x519996
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 4]
add eax, dword [ebp + 0x14]
lea edx, [ecx + 4]
cmp edx, eax
jbe 0x51a3dd
pop edi
pop esi
mov eax, 0xffffff93
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 2
je 0x519d16
cmp eax, 1
jne 0x51a389
cmp dword [ebp - 0x24], eax
je 0x519bf5
mov edx, dword [ebp + 8]
xor eax, eax
lea ecx, [edx + 0x21214]
jmp 0x519b20
lea esi, [eax + 0x30]
mov dword [ecx + 0x484], esi
mov dword [ecx], 8
inc eax
add ecx, 4
cmp eax, 0x8f
jle 0x519b20
mov eax, 0x90
lea ecx, [edx + 0x21454]
jmp 0x519b50
lea esi, [eax + 0x100]
mov dword [ecx + 0x484], esi
mov dword [ecx], 9
inc eax
add ecx, 4
cmp eax, 0xff
jle 0x519b50
mov eax, 0x100
lea ecx, [edx + 0x21614]
jmp 0x519b80
lea esi, [eax - 0x100]
mov dword [ecx + 0x484], esi
mov dword [ecx], 7
inc eax
add ecx, 4
cmp eax, 0x117
jle 0x519b80
mov eax, pe_nt_image_headers32
lea ecx, [edx + 0x21674]
jmp 0x519bb0
lea esi, [eax - 0x58]
mov dword [ecx + 0x484], esi
mov dword [ecx], 8
inc eax
add ecx, 4
cmp eax, 0x11f
jle 0x519bb0
xor eax, eax
lea ecx, [edx + 0x41fa4]
mov dword [ecx + 0x484], eax
mov dword [ecx], 5
inc eax
add ecx, 4
cmp eax, 0x1f
jle 0x519bd2
mov dword [ebp - 0x18], 0x120
mov dword [ebp - 0x1c], 0x20
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
lea esi, [eax + 0x21214]
add eax, 0x21698
push eax
call fcn.0051b470
test eax, eax
js 0x51a415
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp + 8]
push edx
lea edi, [eax + 0x21b1c]
push esi
add eax, 0x21698
push eax
call fcn.0051b380
test eax, eax
js 0x51a415
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
lea esi, [eax + 0x41fa4]
add eax, 0x42428
push eax
call fcn.0051b470
test eax, eax
js 0x51a415
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp + 8]
lea edi, [eax + 0x428ac]
push esi
add eax, 0x42428
push eax
call fcn.0051b380
test eax, eax
js 0x51a415
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 4]
jmp 0x519c80
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x21b20], 0xffffffff
mov esi, 1
jne 0x519cdb
cmp ebx, 1
jge 0x519cbe
mov edx, dword [ebp + 0xc]
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x10], edx
nop
cmp eax, dword [ebp - 0x10]
jae 0x519ae7
movzx edx, byte [eax]
mov ecx, ebx
shl edx, cl
inc eax
add ebx, 8
mov dword [ebp - 4], eax
add edi, edx
cmp ebx, 1
jl 0x519ca0
mov ecx, edi
sar edi, 1
dec ebx
add esi, esi
and ecx, 1
mov dword [ebp - 8], edi
je 0x519cce
inc esi
mov ecx, dword [ebp + 8]
cmp dword [ecx + esi*4 + 0x21b1c], 0xffffffff
je 0x519c91
mov ecx, dword [ecx + esi*4 + 0x21b1c]
cmp ecx, 0x100
je 0x519ac3
cmp ecx, 0xff
ja 0x51a1fd
mov esi, dword [ebp + 0x18]
add esi, dword [ebp + 0x10]
mov edx, dword [ebp - 0x14]
cmp edx, esi
jae 0x51a3b3
mov byte [edx], cl
inc edx
mov dword [ebp - 0x14], edx
jmp 0x519c80
cmp ebx, 5
jge 0x519d3e
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x14]
cmp edi, eax
jae 0x519ae7
movzx edx, byte [edi]
mov ecx, ebx
shl edx, cl
inc edi
add ebx, 8
mov dword [ebp - 4], edi
add esi, edx
cmp ebx, 5
jl 0x519d21
mov eax, esi
and eax, 0x1f
sub ebx, 5
add eax, 0x101
sar esi, 5
mov dword [ebp - 0x18], eax
cmp ebx, 5
jge 0x519d7d
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x14]
lea esp, [esp]
cmp edi, eax
jae 0x519ae7
movzx edx, byte [edi]
mov ecx, ebx
shl edx, cl
inc edi
add ebx, 8
mov dword [ebp - 4], edi
add esi, edx
cmp ebx, 5
jl 0x519d60
mov eax, esi
and eax, 0x1f
sub ebx, 5
inc eax
sar esi, 5
mov dword [ebp - 0x1c], eax
cmp ebx, 4
jge 0x519db4
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x14]
cmp edi, eax
jae 0x519ae7
movzx edx, byte [edi]
mov ecx, ebx
shl edx, cl
inc edi
add ebx, 8
mov dword [ebp - 4], edi
add esi, edx
cmp ebx, 4
jl 0x519d97
mov eax, esi
and eax, 0xf
add eax, 4
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 8]
push 0x484
add eax, 0x484
push 0
sar esi, 4
push eax
mov dword [ebp - 8], esi
sub ebx, 4
mov dword [ebp - 0x24], eax
call sub.MSVCR100.dll_memset
xor eax, eax
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x20], eax
jle 0x519e49
lea ecx, [ecx]
cmp ebx, 3
jge 0x519e1e
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp + 0x14]
mov dword [ebp - 0x10], ecx
mov edi, edi
cmp edi, dword [ebp - 0x10]
jae 0x519ae7
movzx edx, byte [edi]
mov ecx, ebx
shl edx, cl
inc edi
add ebx, 8
mov dword [ebp - 4], edi
add esi, edx
cmp ebx, 3
jl 0x519e00
mov edx, dword [eax*4 + 0x5bcda0]
mov eax, dword [ebp + 8]
mov ecx, esi
and ecx, 7
mov dword [eax + edx*4 + 0x484], ecx
mov eax, dword [ebp - 0xc]
inc eax
sar esi, 3
sub ebx, 3
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x20]
jl 0x519df0
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x24]
add eax, 0x908
push eax
mov ecx, 0x120
call fcn.0051b470
test eax, eax
js 0x51a415
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x24]
push 0x120
push ecx
lea eax, [esi + 0x908]
lea edi, [esi + 0xd8c]
push eax
call fcn.0051b380
test eax, eax
js 0x51a415
cmp dword [ebp - 0x18], 0
mov dword [ebp - 0xc], 0
jle 0x519f41
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 4]
jmp 0x519eb0
mov eax, dword [ebp + 8]
cmp dword [eax + 0xd90], 0xffffffff
mov esi, 1
jne 0x519f0d
cmp ebx, 1
jge 0x519eee
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x10], eax
nop
cmp edx, dword [ebp - 0x10]
jae 0x519ae7
movzx eax, byte [edx]
mov ecx, ebx
shl eax, cl
inc edx
add ebx, 8
mov dword [ebp - 4], edx
add edi, eax
cmp ebx, 1
jl 0x519ed0
mov eax, edi
sar edi, 1
dec ebx
add esi, esi
and eax, 1
mov dword [ebp - 8], edi
je 0x519efe
inc esi
mov ecx, dword [ebp + 8]
cmp dword [ecx + esi*4 + 0xd8c], 0xffffffff
je 0x519ec1
mov eax, ecx
mov esi, dword [eax + esi*4 + 0xd8c]
mov dword [ebp - 0x10], 0
cmp esi, 0xf
ja 0x51a008
mov ecx, dword [ebp - 0xc]
mov dword [eax + ecx*4 + 0x21214], esi
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x519eb0
mov esi, dword [ebp + 8]
cmp dword [esi + 0x21614], 1
jl 0x51a397
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], 0
jle 0x519bf5
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 4]
jmp 0x519f70
mov eax, dword [ebp + 8]
cmp dword [eax + 0xd90], 0xffffffff
mov ecx, dword [ebp + 0x14]
mov edi, 1
jne 0x519fd2
cmp ebx, 1
jge 0x519faf
mov eax, dword [ebp + 0xc]
add eax, ecx
mov dword [ebp - 0x10], eax
cmp edx, dword [ebp - 0x10]
jae 0x519ae7
movzx eax, byte [edx]
mov ecx, ebx
shl eax, cl
inc edx
add ebx, 8
mov dword [ebp - 4], edx
add esi, eax
cmp ebx, 1
jl 0x519f91
mov eax, esi
sar esi, 1
dec ebx
add edi, edi
and eax, 1
mov dword [ebp - 8], esi
je 0x519fbf
inc edi
mov ecx, dword [ebp + 8]
cmp dword [ecx + edi*4 + 0xd8c], 0xffffffff
mov ecx, dword [ebp + 0x14]
je 0x519f84
mov eax, dword [ebp + 8]
mov edi, dword [eax + edi*4 + 0xd8c]
mov dword [ebp - 0x10], 0
cmp edi, 0xf
ja 0x51a109
mov ecx, dword [ebp - 0xc]
mov dword [eax + ecx*4 + 0x41fa4], edi
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x1c]
jl 0x519f70
jmp 0x519bf5
cmp esi, 0x10
jne 0x51a058
cmp ebx, 2
jge 0x51a035
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x14]
cmp edx, eax
jae 0x519ae7
movzx esi, byte [edx]
mov ecx, ebx
shl esi, cl
inc edx
add ebx, 8
mov dword [ebp - 4], edx
add edi, esi
cmp ebx, 2
jl 0x51a018
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0xc]
mov ecx, dword [ecx + esi*4 + 0x21210]
mov eax, edi
and eax, 3
sar edi, 2
sub ebx, 2
add eax, 3
mov dword [ebp - 0x10], ecx
jmp 0x51a0db
cmp esi, 0x11
jne 0x51a095
cmp ebx, 3
jge 0x51a085
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x14]
cmp edx, eax
jae 0x519ae7
movzx esi, byte [edx]
mov ecx, ebx
shl esi, cl
inc edx
add ebx, 8
mov dword [ebp - 4], edx
add edi, esi
cmp ebx, 3
jl 0x51a068
mov eax, edi
and eax, 7
sar edi, 3
sub ebx, 3
add eax, 3
jmp 0x51a0db
cmp esi, 0x12
jne 0x51a3a5
cmp ebx, 7
jge 0x51a0cd
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x14]
lea esp, [esp]
cmp edx, eax
jae 0x519ae7
movzx esi, byte [edx]
mov ecx, ebx
shl esi, cl
inc edx
add ebx, 8
mov dword [ebp - 4], edx
add edi, esi
cmp ebx, 7
jl 0x51a0b0
mov eax, edi
and eax, 0x7f
sar edi, 7
sub ebx, 7
add eax, 0xb
mov dword [ebp - 8], edi
test eax, eax
jle 0x519f2e
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0xc]
lea ecx, [ecx + esi*4 + 0x21214]
mov esi, dword [ebp - 0x10]
dec eax
mov dword [ecx], esi
test eax, eax
jle 0x519f2e
inc dword [ebp - 0xc]
add ecx, 4
jmp 0x51a0f3
cmp edi, 0x10
jne 0x51a155
cmp ebx, 2
jge 0x51a135
mov eax, dword [ebp + 0xc]
add eax, ecx
cmp edx, eax
jae 0x519ae7
movzx edi, byte [edx]
mov ecx, ebx
shl edi, cl
inc edx
add ebx, 8
mov dword [ebp - 4], edx
add esi, edi
cmp ebx, 2
jl 0x51a118
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 0xc]
mov ecx, dword [ecx + edi*4 + 0x41fa0]
mov eax, esi
and eax, 3
sar esi, 2
sub ebx, 2
add eax, 3
mov dword [ebp - 0x10], ecx
jmp 0x51a1cf
cmp edi, 0x11
jne 0x51a191
cmp ebx, 3
jge 0x51a181
mov eax, dword [ebp + 0xc]
add eax, ecx
cmp edx, eax
jae 0x519ae7
movzx edi, byte [edx]
mov ecx, ebx
shl edi, cl
inc edx
add ebx, 8
mov dword [ebp - 4], edx
add esi, edi
cmp ebx, 3
jl 0x51a164
mov eax, esi
and eax, 7
sar esi, 3
sub ebx, 3
add eax, 3
jmp 0x51a1cf
cmp edi, 0x12
jne 0x51a3a5
cmp ebx, 7
jge 0x51a1c1
mov eax, dword [ebp + 0xc]
add eax, ecx
cmp edx, eax
jae 0x519ae7
movzx edi, byte [edx]
mov ecx, ebx
shl edi, cl
inc edx
add ebx, 8
mov dword [ebp - 4], edx
add esi, edi
cmp ebx, 7
jl 0x51a1a4
mov eax, esi
and eax, 0x7f
sar esi, 7
sub ebx, 7
add eax, 0xb
mov dword [ebp - 8], esi
test eax, eax
jle 0x519ff3
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 0xc]
lea ecx, [ecx + edi*4 + 0x41fa4]
mov edi, dword [ebp - 0x10]
dec eax
mov dword [ecx], edi
test eax, eax
jle 0x519ff3
inc dword [ebp - 0xc]
add ecx, 4
jmp 0x51a1e7
add ecx, 0xfffffeff
mov dword [ebp - 0x24], ecx
cmp ecx, 0x1c
ja 0x51a3cf
mov esi, dword [ecx*4 + 0x5bcbb0]
xor edx, edx
test esi, esi
jle 0x51a25f
cmp esi, ebx
jle 0x51a24d
mov edx, dword [ebp + 0xc]
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x10], edx
lea esp, [esp]
cmp eax, dword [ebp - 0x10]
jae 0x519ae7
movzx edx, byte [eax]
mov ecx, ebx
shl edx, cl
inc eax
add ebx, 8
mov dword [ebp - 4], eax
add edi, edx
cmp esi, ebx
jg 0x51a230
or edx, 0xffffffff
mov ecx, esi
shl edx, cl
not edx
and edx, edi
sar edi, cl
sub ebx, esi
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx*4 + 0x5bcc28]
add ecx, edx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x428b0], 0xffffffff
mov edx, 1
jne 0x51a2cb
nop
cmp ebx, 1
jge 0x51a2ae
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp + 0x14]
mov dword [ebp - 0x10], ecx
mov edi, edi
cmp eax, dword [ebp - 0x10]
jae 0x519ae7
movzx esi, byte [eax]
mov ecx, ebx
shl esi, cl
inc eax
add ebx, 8
mov dword [ebp - 4], eax
add edi, esi
cmp ebx, 1
jl 0x51a290
mov ecx, edi
sar edi, 1
dec ebx
add edx, edx
and ecx, 1
mov dword [ebp - 8], edi
je 0x51a2be
inc edx
mov ecx, dword [ebp + 8]
cmp dword [ecx + edx*4 + 0x428ac], 0xffffffff
je 0x51a280
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + edx*4 + 0x428ac]
mov dword [ebp - 0x24], edx
cmp edx, 0x1d
jg 0x51a3c1
test edx, edx
js 0x51a3c1
mov ecx, dword [ebp - 0x24]
mov esi, dword [ecx*4 + 0x5bcca0]
xor edx, edx
test esi, esi
jle 0x51a335
cmp esi, ebx
jle 0x51a323
mov edx, dword [ebp + 0xc]
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x10], edx
cmp eax, dword [ebp - 0x10]
jae 0x519ae7
movzx edx, byte [eax]
mov ecx, ebx
shl edx, cl
inc eax
add ebx, 8
mov dword [ebp - 4], eax
add edi, edx
cmp esi, ebx
jg 0x51a306
or edx, 0xffffffff
mov ecx, esi
shl edx, cl
not edx
and edx, edi
sar edi, cl
sub ebx, esi
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
sub ecx, dword [esi*4 + 0x5bcd20]
sub ecx, edx
mov edx, dword [ebp + 0x10]
add edx, dword [ebp + 0x18]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x14]
cmp ecx, edx
ja 0x51a3b3
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x519c80
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov dl, byte [edx]
inc dword [ebp - 0x10]
mov byte [ecx], dl
inc ecx
dec esi
jne 0x51a365
mov dword [ebp - 0x14], ecx
jmp 0x519c80
pop edi
pop esi
mov eax, 0xffffff94
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffff96
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffff8e
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffff99
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffff95
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffff98
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffff97
pop ebx
mov esp, ebp
pop ebp
ret 0x14
movzx edi, byte [ecx]
movzx edx, byte [ecx + 1]
mov esi, dword [ebp - 0x14]
shl edi, 8
add edi, edx
movzx edx, byte [ecx + 2]
movzx ecx, byte [ecx + 3]
shl edi, 8
add edi, edx
mov edx, dword [ebp + 0x10]
sub esi, edx
shl edi, 8
mov eax, esi
add edi, ecx
call fcn.0051b9d0
cmp edi, eax
mov eax, 0xffffff8f
jne 0x51a415
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14