Function at 0x525d78
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff28
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0xc4]
mov edx, dword [0x4f6bc8]
call fcn.00404e68
xor eax, eax
push ebp
push 0x52900d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x84], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
mov edx, 0x529024
call fcn.004d36ec
mov byte [ebp - 0x19], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 1
jne 0x525de8
mov al, byte [ebp - 0x19]
xor al, 1
mov byte [ebp - 0x19], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529034
call fcn.004046b8
jne 0x525f87
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 1
jne 0x525f87
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 1
je 0x525f87
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, 1
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, 1
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor eax, eax
push ebp
push 0x525e82
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov dl, 1
call fcn.0042bcdc
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x525ea0
mov esi, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
test eax, eax
jns 0x525eb2
add eax, 7
sar eax, 3
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x14]
shl edx, 3
cmp eax, edx
jle 0x525ecb
inc dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call fcn.004048f8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
dec eax
test eax, eax
jl 0x525f6e
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp - 4]
add eax, 0x34
call fcn.004047c4
lea eax, [eax + esi - 1]
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, eax
mov ecx, dword [ebp - 0x14]
pop eax
call fcn.004029a4
cmp byte [ebp - 0x19], 0
je 0x525f43
mov eax, dword [ebp - 0x14]
test eax, eax
jle 0x525f43
mov dword [ebp - 0x48], eax
mov ebx, 1
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + ebx - 1]
not dl
mov byte [eax + ebx - 1], dl
inc ebx
dec dword [ebp - 0x48]
jne 0x525f28
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
mov ecx, dword [ebp - 0x14]
pop edx
call fcn.004029a4
add esi, dword [ebp - 0x14]
inc dword [ebp - 8]
dec dword [ebp - 0x44]
jne 0x525ef0
mov eax, dword [ebp - 4]
add eax, 0x3c
mov edx, 0x529048
call fcn.00404300
mov byte [ebp - 0x35], 1
jmp 0x528da7
mov byte [ebp - 0x35], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, 1
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, 1
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor eax, eax
push ebp
push 0x525ff2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov dl, 6
call fcn.0042bcdc
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x526010
mov ebx, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529058
call fcn.004046b8
jne 0x52602c
mov ebx, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529034
call fcn.004046b8
jne 0x526043
mov ebx, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529068
call fcn.004046b8
jne 0x52605a
mov ebx, 3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x52907c
call fcn.004046b8
jne 0x526071
mov ebx, 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529090
call fcn.004046b8
jne 0x526088
mov ebx, 3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x52909c
call fcn.004046b8
jne 0x52609f
mov ebx, 3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x5290b0
call fcn.004046b8
jne 0x5260b6
mov ebx, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x5290c4
call fcn.004046b8
jne 0x5260d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe8]
mov ebx, dword [eax + 0x30]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 1
jne 0x526109
mov eax, ecx
imul ebx
test eax, eax
jns 0x5260f1
add eax, 7
sar eax, 3
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
shl eax, 3
cdq
idiv ebx
cmp ecx, eax
jle 0x526181
inc dword [ebp - 0x14]
jmp 0x526181
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 2
jne 0x526135
mov eax, ecx
imul ebx
test eax, eax
jns 0x52611d
add eax, 3
sar eax, 2
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
shl eax, 2
cdq
idiv ebx
cmp ecx, eax
jle 0x526181
inc dword [ebp - 0x14]
jmp 0x526181
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 4
jne 0x52615d
mov eax, ecx
imul ebx
sar eax, 1
jns 0x526149
adc eax, 0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
add eax, eax
cdq
idiv ebx
cmp ecx, eax
jle 0x526181
inc dword [ebp - 0x14]
jmp 0x526181
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 8
jne 0x52616e
imul ecx, ebx
mov dword [ebp - 0x14], ecx
jmp 0x526181
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 0x10
jne 0x526181
imul ecx, ebx
mov eax, ecx
add eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x10]
imul edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
add eax, 0x34
call fcn.004048f8
xor ecx, ecx
push ebp
push 0x528d9d
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529034
call fcn.004046b8
je 0x5261d8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x5290b0
call fcn.004046b8
je 0x5261d8
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 1
jne 0x5266c5
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
lea edx, [edx + edx*2]
lea eax, [ebp - 0x10]
call fcn.004048f8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
dec eax
test eax, eax
jl 0x526480
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 8], 0
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
dec eax
test eax, eax
jl 0x52644e
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
cmp eax, 1
jne 0x526292
mov eax, ebx
and eax, 0x80000007
jns 0x526233
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov edi, 1
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000007
jns 0x52625a
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x526270
add edx, 7
sar edx, 3
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
mov edx, eax
shl eax, 8
sub eax, edx
pop edx
mov byte [edx], al
jmp 0x5263da
cmp eax, 2
jne 0x526313
mov eax, ebx
and eax, 0x80000003
jns 0x5262a5
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov edi, 3
shl edi, cl
mov eax, ebx
and eax, 0x80000003
jns 0x5262c5
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x5262df
add edx, 3
sar edx, 2
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and edi, eax
shr edi, cl
mov eax, edi
shl eax, 8
sub eax, edi
mov ecx, 3
cdq
idiv ecx
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
pop edx
mov byte [eax + esi], dl
jmp 0x5263da
cmp eax, 4
jne 0x526390
mov eax, ebx
and eax, 0x80000001
jns 0x526326
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov edi, 0xf
shl edi, cl
mov eax, ebx
and eax, 0x80000001
jns 0x526347
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
sar edx, 1
jns 0x526362
adc edx, 0
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and edi, eax
shr edi, cl
mov eax, edi
shl eax, 8
sub eax, edi
mov ecx, 0xf
cdq
idiv ecx
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
pop edx
mov byte [eax + esi], dl
jmp 0x5263da
cmp eax, 8
jne 0x5263b4
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 0x14]
add edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov dl, byte [ecx + edx]
mov byte [eax + esi], dl
jmp 0x5263da
cmp eax, 0x10
jne 0x5263da
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 0x14]
mov ecx, ebx
add ecx, ecx
add edx, ecx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov dl, byte [ecx + edx]
mov byte [eax + esi], dl
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + esi]
mov byte [eax + esi + 1], dl
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + esi]
mov byte [eax + esi + 2], dl
cmp byte [ebp - 0x19], 0
je 0x526441
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + esi]
not dl
mov byte [eax + esi], dl
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + esi + 1]
not dl
mov byte [eax + esi + 1], dl
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 0x10]
mov dl, byte [edx + esi + 2]
not dl
mov byte [eax + esi + 2], dl
add esi, 3
inc ebx
dec dword [ebp - 0x48]
jne 0x52621a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0xc]
lea ecx, [ecx + ecx*2]
pop edx
call fcn.004029a4
inc dword [ebp - 8]
dec dword [ebp - 0x44]
jne 0x526203
mov eax, dword [ebp - 4]
add eax, 0x3c
mov edx, 0x529048
call fcn.00404300
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 1
jne 0x528d0f
mov dl, 1
mov eax, dword [0x4242d0]
call fcn.0042a704
mov dword [ebp - 0x34], eax
xor eax, eax
push ebp
push 0x5264fb
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [ebp - 0x34]
call fcn.0042bcdc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x526529
mov eax, dword [ebp - 0x34]
call fcn.0042accc
call fcn.00425f18
xor eax, eax
push ebp
push 0x52658b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
push eax
mov eax, dword [ebp - 0x34]
call fcn.0042accc
xor ecx, ecx
xor edx, edx
call fcn.00425d40
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040349c
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x18], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x526592
mov eax, dword [ebp - 0x34]
call fcn.0042accc
call fcn.004261d0
ret
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529068
call fcn.004046b8
je 0x5266ff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529090
call fcn.004046b8
je 0x5266ff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x52909c
call fcn.004046b8
jne 0x526974
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
lea edx, [edx + edx*2]
lea eax, [ebp - 0x10]
call fcn.004048f8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
dec eax
test eax, eax
jl 0x52695f
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
dec eax
test eax, eax
jl 0x52692d
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov eax, ebx
mov ecx, 3
cdq
idiv ecx
sub edx, 1
jb 0x526755
je 0x52675a
jmp 0x52675e
lea esi, [ebx + 2]
jmp 0x526763
mov esi, ebx
jmp 0x526763
mov esi, ebx
sub esi, 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
cmp eax, 1
jne 0x5267db
mov eax, ebx
and eax, 0x80000007
jns 0x52677c
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov edi, 1
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000007
jns 0x5267a3
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x5267b9
add edx, 7
sar edx, 3
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
mov edx, eax
shl eax, 8
sub eax, edx
pop edx
mov byte [edx], al
jmp 0x526923
cmp eax, 2
jne 0x52685c
mov eax, ebx
and eax, 0x80000003
jns 0x5267ee
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov edi, 3
shl edi, cl
mov eax, ebx
and eax, 0x80000003
jns 0x52680e
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x526828
add edx, 3
sar edx, 2
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and edi, eax
shr edi, cl
mov eax, edi
shl eax, 8
sub eax, edi
mov ecx, 3
cdq
idiv ecx
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
pop edx
mov byte [eax + esi], dl
jmp 0x526923
cmp eax, 4
jne 0x5268d9
mov eax, ebx
and eax, 0x80000001
jns 0x52686f
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov edi, 0xf
shl edi, cl
mov eax, ebx
and eax, 0x80000001
jns 0x526890
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
sar edx, 1
jns 0x5268ab
adc edx, 0
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and edi, eax
shr edi, cl
mov eax, edi
shl eax, 8
sub eax, edi
mov ecx, 0xf
cdq
idiv ecx
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
pop edx
mov byte [eax + esi], dl
jmp 0x526923
cmp eax, 8
jne 0x5268fd
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 0x14]
add edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov dl, byte [ecx + edx]
mov byte [eax + esi], dl
jmp 0x526923
cmp eax, 0x10
jne 0x526923
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 0x14]
mov ecx, ebx
add ecx, ecx
add edx, ecx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov dl, byte [ecx + edx]
mov byte [eax + esi], dl
inc ebx
dec dword [ebp - 0x48]
jne 0x526742
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0xc]
lea ecx, [ecx + ecx*2]
pop edx
call fcn.004029a4
inc dword [ebp - 8]
dec dword [ebp - 0x44]
jne 0x52672a
mov eax, dword [ebp - 4]
add eax, 0x3c
mov edx, 0x5290d4
call fcn.00404300
jmp 0x528d0f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x5290c4
call fcn.004046b8
jne 0x526ccc
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe8]
imul edx, dword [eax + 0x30]
lea eax, [ebp - 0x10]
call fcn.004048f8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
dec eax
test eax, eax
jl 0x528d0f
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xe8]
imul dword [edx + 0x30]
dec eax
test eax, eax
jl 0x526b82
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov esi, ebx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 1
jne 0x526a53
mov eax, ebx
and eax, 0x80000007
jns 0x5269f9
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov edi, 1
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000007
jns 0x526a20
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x526a36
add edx, 7
sar edx, 3
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
mov edx, eax
shl eax, 8
sub eax, edx
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 2
jne 0x526ad3
mov eax, ebx
and eax, 0x80000003
jns 0x526a6a
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov edi, 3
shl edi, cl
mov eax, ebx
and eax, 0x80000003
jns 0x526a8a
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x526aa4
add edx, 3
sar edx, 2
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and edi, eax
shr edi, cl
mov eax, edi
shl eax, 8
sub eax, edi
mov ecx, 3
cdq
idiv ecx
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
pop edx
mov byte [eax + esi], dl
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 4
jne 0x526b52
mov eax, ebx
and eax, 0x80000001
jns 0x526aea
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov edi, 0xf
shl edi, cl
mov eax, ebx
and eax, 0x80000001
jns 0x526b0b
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
sar edx, 1
jns 0x526b26
adc edx, 0
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and edi, eax
shr edi, cl
mov eax, edi
shl eax, 8
sub eax, edi
mov ecx, 0xf
cdq
idiv ecx
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
pop edx
mov byte [eax + esi], dl
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 8
jne 0x526b78
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 0x14]
add edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov dl, byte [ecx + edx]
mov byte [eax + esi], dl
inc ebx
dec dword [ebp - 0x48]
jne 0x5269e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe8]
mov eax, dword [eax + 0x30]
push eax
lea eax, [ebp - 0x20]
mov ecx, 1
mov edx, dword [0x4d8580]
call fcn.00405974
add esp, 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
push eax
lea eax, [ebp - 0x24]
mov ecx, 1
mov edx, dword [0x525d08]
call fcn.00405974
add esp, 4
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
dec eax
test eax, eax
jl 0x526c9a
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe8]
mov edx, dword [eax + 0x30]
test edx, edx
jle 0x526c2d
mov eax, 1
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xe8]
mov ecx, dword [ecx + 0x30]
imul ecx, ebx
add ecx, eax
mov edi, dword [ebp - 0x10]
mov cl, byte [edi + ecx - 1]
and ecx, 0xff
mov dword [ebp - 0xc8], ecx
fild dword [ebp - 0xc8]
fdiv dword [0x5290e4]
mov ecx, dword [ebp - 0x20]
fstp qword [ecx + eax*8 - 8]
wait
inc eax
dec edx
jne 0x526bf1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe8]
mov cl, 1
mov edx, dword [ebp - 0x20]
call fcn.004da778
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xe8]
mov dl, byte [edx + 0x24]
and dl, 0xff
mov byte [eax + esi + 2], dl
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xe8]
mov edx, dword [edx + 0x24]
and edx, 0xff00
shr edx, 8
mov byte [eax + esi + 1], dl
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xe8]
mov edx, dword [edx + 0x24]
and edx, 0xff0000
shr edx, 0x10
mov byte [eax + esi], dl
add esi, 3
inc ebx
dec dword [ebp - 0x48]
jne 0x526bdc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
mov edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*2]
mov eax, dword [ebp - 0x24]
call fcn.004029a4
inc dword [ebp - 8]
dec dword [ebp - 0x44]
jne 0x5269bf
jmp 0x528d0f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x52907c
call fcn.004046b8
jne 0x527026
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
shl edx, 2
lea eax, [ebp - 0x10]
call fcn.004048f8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
dec eax
test eax, eax
jl 0x528d0f
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
shl eax, 2
dec eax
test eax, eax
jl 0x526ec7
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov esi, ebx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 1
jne 0x526d98
mov eax, ebx
and eax, 0x80000007
jns 0x526d3e
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov edi, 1
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000007
jns 0x526d65
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x526d7b
add edx, 7
sar edx, 3
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
mov edx, eax
shl eax, 8
sub eax, edx
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 2
jne 0x526e18
mov eax, ebx
and eax, 0x80000003
jns 0x526daf
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov edi, 3
shl edi, cl
mov eax, ebx
and eax, 0x80000003
jns 0x526dcf
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x526de9
add edx, 3
sar edx, 2
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and edi, eax
shr edi, cl
mov eax, edi
shl eax, 8
sub eax, edi
mov ecx, 3
cdq
idiv ecx
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
pop edx
mov byte [eax + esi], dl
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 4
jne 0x526e97
mov eax, ebx
and eax, 0x80000001
jns 0x526e2f
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov edi, 0xf
shl edi, cl
mov eax, ebx
and eax, 0x80000001
jns 0x526e50
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
sar edx, 1
jns 0x526e6b
adc edx, 0
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and edi, eax
shr edi, cl
mov eax, edi
shl eax, 8
sub eax, edi
mov ecx, 0xf
cdq
idiv ecx
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
pop edx
mov byte [eax + esi], dl
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 8
jne 0x526ebd
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 0x14]
add edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov dl, byte [ecx + edx]
mov byte [eax + esi], dl
inc ebx
dec dword [ebp - 0x48]
jne 0x526d25
xor esi, esi
xor ebx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
dec eax
test eax, eax
jl 0x526fef
inc eax
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x10]
mov al, byte [eax + ebx]
and eax, 0xff
mov dword [ebp - 0xc8], eax
fild dword [ebp - 0xc8]
fdiv dword [0x5290e4]
fstp qword [ebp - 0x80]
wait
mov eax, dword [ebp - 0x10]
mov al, byte [eax + ebx + 1]
and eax, 0xff
mov dword [ebp - 0xc8], eax
fild dword [ebp - 0xc8]
fdiv dword [0x5290e4]
fstp qword [ebp - 0x78]
wait
mov eax, dword [ebp - 0x10]
mov al, byte [eax + ebx + 2]
and eax, 0xff
mov dword [ebp - 0xc8], eax
fild dword [ebp - 0xc8]
fdiv dword [0x5290e4]
fstp qword [ebp - 0x70]
wait
mov eax, dword [ebp - 0x10]
mov al, byte [eax + ebx + 3]
and eax, 0xff
mov dword [ebp - 0xc8], eax
fild dword [ebp - 0xc8]
fdiv dword [0x5290e4]
fstp qword [ebp - 0x68]
wait
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbc]
mov edi, dword [eax]
call dword [edi]
fld qword [ebp - 0x50]
fmul dword [0x5290e4]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.004d49d0
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
pop edx
mov byte [eax + esi], dl
fld qword [ebp - 0x58]
fmul dword [0x5290e4]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.004d49d0
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
pop edx
mov byte [eax + esi + 1], dl
fld qword [ebp - 0x60]
fmul dword [0x5290e4]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.004d49d0
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
pop edx
mov byte [eax + esi + 2], dl
add esi, 3
add ebx, 4
dec dword [ebp - 0x48]
jne 0x526ede
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0xc]
lea ecx, [ecx + ecx*2]
pop edx
call fcn.004029a4
inc dword [ebp - 8]
dec dword [ebp - 0x44]
jne 0x526d0d
jmp 0x528d0f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529058
call fcn.004046b8
jne 0x527633
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x529068
call fcn.004046b8
je 0x527091
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x5290f0
call fcn.004046b8
je 0x527091
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x52909c
call fcn.004046b8
je 0x527091
mov eax, dword [ebp - 4]
cmp dword [eax + 0x24], 0
je 0x527091
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x529090
call fcn.004046b8
jne 0x527633
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x527245
mov eax, dword [ebp - 4]
cmp dword [eax + 0x88], 0
je 0x5270c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0040349c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x88], edx
mov dl, 1
mov eax, dword [0x4242d0]
call fcn.0042a704
mov edx, dword [ebp - 4]
mov dword [edx + 0x88], eax
xor eax, eax
push ebp
push 0x527139
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov dl, 3
call fcn.0042bcdc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x527178
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
call fcn.00425f18
xor eax, eax
push ebp
push 0x527219
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
mov eax, dword [eax + 0x14]
mov edx, 0xffffff
call fcn.00425a48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.00419c90
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
pop edx
call fcn.00425e68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x527220
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
call fcn.004261d0
ret
push pe_nt_image_headers32
lea eax, [ebp - 0x3c]
mov ecx, 1
mov edx, dword [0x525d40]
call fcn.00405974
add esp, 4
xor eax, eax
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x30]
jl 0x527276
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
test ebx, ebx
jl 0x5272dd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.0040456c
lea edx, [ebx + ebx*2]
add edx, 3
cmp eax, edx
jl 0x5272dd
lea eax, [ebx + ebx*2]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
mov al, byte [edx + eax]
mov edx, dword [ebp - 0xc]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + edx + 2], al
lea eax, [ebx + ebx*2]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
mov al, byte [edx + eax + 1]
mov edx, dword [ebp - 0xc]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + edx + 1], al
lea eax, [ebx + ebx*2]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
mov al, byte [edx + eax + 2]
mov edx, dword [ebp - 0xc]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + edx], al
jmp 0x527306
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax + 2], 0
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax + 1], 0
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax], 0
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x100
jne 0x527265
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
lea edx, [edx + edx*2]
lea eax, [ebp - 0x10]
call fcn.004048f8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
dec eax
test eax, eax
jl 0x5275c6
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x52736b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
dec eax
test eax, eax
jl 0x52736b
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov eax, dword [ebp - 0x18]
mov byte [eax + ebx], 0xff
inc ebx
dec dword [ebp - 0x48]
jne 0x52735e
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
dec eax
test eax, eax
jl 0x527567
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 1
jne 0x5273ec
mov eax, ebx
and eax, 0x80000007
jns 0x527399
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov edi, 1
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000007
jns 0x5273c0
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x5273d6
add edx, 7
sar edx, 3
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 2
jne 0x52745e
mov eax, ebx
and eax, 0x80000003
jns 0x527403
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov edi, 3
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000003
jns 0x52742e
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x527448
add edx, 3
sar edx, 2
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 4
jne 0x5274cf
mov eax, ebx
and eax, 0x80000001
jns 0x527475
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov edi, 0xf
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000001
jns 0x5274a1
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
sar edx, 1
jns 0x5274bc
adc edx, 0
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 8
jne 0x5274f5
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 0x14]
add edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov dl, byte [ecx + edx]
mov byte [eax + esi], dl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + esi]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x10]
call fcn.004047c4
lea edx, [eax + esi]
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov ecx, dword [ebp - 0x3c]
lea eax, [ecx + eax]
mov ecx, 3
call fcn.004029a4
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x52755a
fild dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
fcomp qword [eax]
fnstsw ax
sahf
jb 0x52755a
fild dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
fcomp qword [eax + 8]
fnstsw ax
sahf
ja 0x52755a
mov eax, dword [ebp - 0x18]
mov byte [eax + ebx], 0
add esi, 3
inc ebx
dec dword [ebp - 0x48]
jne 0x527382
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0xc]
lea ecx, [ecx + ecx*2]
pop edx
call fcn.004029a4
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x5275ba
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
mov edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x18]
call fcn.004029a4
inc dword [ebp - 8]
dec dword [ebp - 0x44]
jne 0x527341
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x528d0f
xor eax, eax
push ebp
push 0x5275fe
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov dl, 6
call fcn.0042bcdc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x527624
mov eax, dword [ebp - 4]
mov byte [eax + 0xc0], 2
jmp 0x528d0f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529058
call fcn.004046b8
jne 0x527c05
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x529034
call fcn.004046b8
je 0x527671
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x529100
call fcn.004046b8
jne 0x527c05
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x527825
mov eax, dword [ebp - 4]
cmp dword [eax + 0x88], 0
je 0x5276a6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0040349c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x88], edx
mov dl, 1
mov eax, dword [0x4242d0]
call fcn.0042a704
mov edx, dword [ebp - 4]
mov dword [edx + 0x88], eax
xor eax, eax
push ebp
push 0x527719
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov dl, 3
call fcn.0042bcdc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x527758
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
call fcn.00425f18
xor eax, eax
push ebp
push 0x5277f9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
mov eax, dword [eax + 0x14]
mov edx, 0xffffff
call fcn.00425a48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.00419c90
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
pop edx
call fcn.00425e68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x527800
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
call fcn.004261d0
ret
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
lea edx, [edx + edx*2]
lea eax, [ebp - 0x10]
call fcn.004048f8
push pe_nt_image_headers32
lea eax, [ebp - 0x3c]
mov ecx, 1
mov edx, dword [0x525d40]
call fcn.00405974
add esp, 4
xor eax, eax
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x30]
jl 0x527867
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
test ebx, ebx
jl 0x5278c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.0040456c
lea edx, [ebx + 1]
cmp eax, edx
jl 0x5278c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov al, byte [eax + ebx]
mov edx, dword [ebp - 0xc]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + edx + 2], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov al, byte [eax + ebx]
mov edx, dword [ebp - 0xc]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + edx + 1], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov al, byte [eax + ebx]
mov edx, dword [ebp - 0xc]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + edx], al
jmp 0x5278e9
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax + 2], 0
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax + 1], 0
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax], 0
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x100
jne 0x527856
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
dec eax
test eax, eax
jl 0x527b98
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x52793d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
dec eax
test eax, eax
jl 0x52793d
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov eax, dword [ebp - 0x18]
mov byte [eax + ebx], 0xff
inc ebx
dec dword [ebp - 0x48]
jne 0x527930
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
dec eax
test eax, eax
jl 0x527b39
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 1
jne 0x5279be
mov eax, ebx
and eax, 0x80000007
jns 0x52796b
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov edi, 1
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000007
jns 0x527992
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x5279a8
add edx, 7
sar edx, 3
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 2
jne 0x527a30
mov eax, ebx
and eax, 0x80000003
jns 0x5279d5
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov edi, 3
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000003
jns 0x527a00
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x527a1a
add edx, 3
sar edx, 2
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 4
jne 0x527aa1
mov eax, ebx
and eax, 0x80000001
jns 0x527a47
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov edi, 0xf
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000001
jns 0x527a73
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
sar edx, 1
jns 0x527a8e
adc edx, 0
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 8
jne 0x527ac7
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 0x14]
add edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov dl, byte [ecx + edx]
mov byte [eax + esi], dl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + esi]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x10]
call fcn.004047c4
lea edx, [eax + esi]
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov ecx, dword [ebp - 0x3c]
lea eax, [ecx + eax]
mov ecx, 3
call fcn.004029a4
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x527b2c
fild dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
fcomp qword [eax]
fnstsw ax
sahf
jb 0x527b2c
fild dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
fcomp qword [eax + 8]
fnstsw ax
sahf
ja 0x527b2c
mov eax, dword [ebp - 0x18]
mov byte [eax + ebx], 0
add esi, 3
inc ebx
dec dword [ebp - 0x48]
jne 0x527954
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0xc]
lea ecx, [ecx + ecx*2]
pop edx
call fcn.004029a4
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x527b8c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
mov edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x18]
call fcn.004029a4
inc dword [ebp - 8]
dec dword [ebp - 0x44]
jne 0x527913
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x528d0f
xor eax, eax
push ebp
push 0x527bd0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov dl, 6
call fcn.0042bcdc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x527bf6
mov eax, dword [ebp - 4]
mov byte [eax + 0xc0], 2
jmp 0x528d0f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529058
call fcn.004046b8
jne 0x5281f1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x52907c
call fcn.004046b8
jne 0x5281f1
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x527de5
mov eax, dword [ebp - 4]
cmp dword [eax + 0x88], 0
je 0x527c66
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0040349c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x88], edx
mov dl, 1
mov eax, dword [0x4242d0]
call fcn.0042a704
mov edx, dword [ebp - 4]
mov dword [edx + 0x88], eax
xor eax, eax
push ebp
push 0x527cd9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov dl, 3
call fcn.0042bcdc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x527d18
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
call fcn.00425f18
xor eax, eax
push ebp
push 0x527db9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
mov eax, dword [eax + 0x14]
mov edx, 0xffffff
call fcn.00425a48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.00419c90
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
pop edx
call fcn.00425e68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x527dc0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
call fcn.004261d0
ret
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
lea edx, [edx + edx*2]
lea eax, [ebp - 0x10]
call fcn.004048f8
push pe_nt_image_headers32
lea eax, [ebp - 0x3c]
mov ecx, 1
mov edx, dword [0x525d40]
call fcn.00405974
add esp, 4
xor eax, eax
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x30]
jl 0x527e27
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
test ebx, ebx
jl 0x527f6b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.0040456c
mov edx, ebx
shl edx, 2
add edx, 4
cmp eax, edx
jl 0x527f6b
mov eax, ebx
shl eax, 2
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
mov al, byte [edx + eax]
and eax, 0xff
mov dword [ebp - 0xc8], eax
fild dword [ebp - 0xc8]
fdiv dword [0x5290e4]
fstp qword [ebp - 0x80]
wait
mov eax, ebx
shl eax, 2
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
mov al, byte [edx + eax + 1]
and eax, 0xff
mov dword [ebp - 0xc8], eax
fild dword [ebp - 0xc8]
fdiv dword [0x5290e4]
fstp qword [ebp - 0x78]
wait
mov eax, ebx
shl eax, 2
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
mov al, byte [edx + eax + 2]
and eax, 0xff
mov dword [ebp - 0xc8], eax
fild dword [ebp - 0xc8]
fdiv dword [0x5290e4]
fstp qword [ebp - 0x70]
wait
mov eax, ebx
shl eax, 2
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
mov al, byte [edx + eax + 3]
and eax, 0xff
mov dword [ebp - 0xc8], eax
fild dword [ebp - 0xc8]
fdiv dword [0x5290e4]
fstp qword [ebp - 0x68]
wait
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbc]
mov ebx, dword [eax]
call dword [ebx]
fld qword [ebp - 0x60]
fmul dword [0x5290e4]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.004d49d0
mov edx, dword [ebp - 0xc]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + edx + 2], al
fld qword [ebp - 0x58]
fmul dword [0x5290e4]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.004d49d0
mov edx, dword [ebp - 0xc]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + edx + 1], al
fld qword [ebp - 0x50]
fmul dword [0x5290e4]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.004d49d0
mov edx, dword [ebp - 0xc]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + edx], al
jmp 0x527f94
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax + 2], 0
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax + 1], 0
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax], 0
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x100
jne 0x527e16
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
dec eax
test eax, eax
jl 0x528d0f
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 8], 0
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
dec eax
test eax, eax
jl 0x5281ba
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 1
jne 0x52803f
mov eax, ebx
and eax, 0x80000007
jns 0x527fec
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov edi, 1
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000007
jns 0x528013
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x528029
add edx, 7
sar edx, 3
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 2
jne 0x5280b1
mov eax, ebx
and eax, 0x80000003
jns 0x528056
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov edi, 3
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000003
jns 0x528081
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x52809b
add edx, 3
sar edx, 2
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 4
jne 0x528122
mov eax, ebx
and eax, 0x80000001
jns 0x5280c8
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov edi, 0xf
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000001
jns 0x5280f4
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
sar edx, 1
jns 0x52810f
adc edx, 0
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 8
jne 0x528148
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 0x14]
add edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov dl, byte [ecx + edx]
mov byte [eax + esi], dl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + esi]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x10]
call fcn.004047c4
lea edx, [eax + esi]
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov ecx, dword [ebp - 0x3c]
lea eax, [ecx + eax]
mov ecx, 3
call fcn.004029a4
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x5281ad
fild dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
fcomp qword [eax]
fnstsw ax
sahf
jb 0x5281ad
fild dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
fcomp qword [eax + 8]
fnstsw ax
sahf
ja 0x5281ad
mov eax, dword [ebp - 0x18]
mov byte [eax + ebx], 0
add esi, 3
inc ebx
dec dword [ebp - 0x48]
jne 0x527fd5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0xc]
lea ecx, [ecx + ecx*2]
pop edx
call fcn.004029a4
inc dword [ebp - 8]
dec dword [ebp - 0x44]
jne 0x527fbe
jmp 0x528d0f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529058
call fcn.004046b8
jne 0x5287b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x5290c4
call fcn.004046b8
jne 0x5287b4
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x5283d1
mov eax, dword [ebp - 4]
cmp dword [eax + 0x88], 0
je 0x528252
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0040349c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x88], edx
mov dl, 1
mov eax, dword [0x4242d0]
call fcn.0042a704
mov edx, dword [ebp - 4]
mov dword [edx + 0x88], eax
xor eax, eax
push ebp
push 0x5282c5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov dl, 3
call fcn.0042bcdc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x528304
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
call fcn.00425f18
xor eax, eax
push ebp
push 0x5283a5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
mov eax, dword [eax + 0x14]
mov edx, 0xffffff
call fcn.00425a48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.00419c90
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
pop edx
call fcn.00425e68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5283ac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
call fcn.004261d0
ret
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe8]
mov eax, dword [eax + 0x30]
push eax
lea eax, [ebp - 0x20]
mov ecx, 1
mov edx, dword [0x4d8580]
call fcn.00405974
add esp, 4
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
lea edx, [edx + edx*2]
lea eax, [ebp - 0x10]
call fcn.004048f8
push pe_nt_image_headers32
lea eax, [ebp - 0x3c]
mov ecx, 1
mov edx, dword [0x525d40]
call fcn.00405974
add esp, 4
xor eax, eax
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x30]
jl 0x528436
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
test ebx, ebx
jl 0x52852e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.0040456c
lea edx, [ebx + 1]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xe8]
imul edx, dword [ecx + 0x30]
cmp eax, edx
jl 0x52852e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe8]
mov eax, dword [eax + 0x30]
test eax, eax
jle 0x5284ba
mov dword [ebp - 0x44], eax
mov eax, 1
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xe8]
mov edx, dword [edx + 0x30]
imul edx, ebx
add edx, eax
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x2c]
mov dl, byte [ecx + edx - 1]
and edx, 0xff
mov dword [ebp - 0xc8], edx
fild dword [ebp - 0xc8]
fdiv dword [0x5290e4]
mov edx, dword [ebp - 0x20]
fstp qword [edx + eax*8 - 8]
wait
inc eax
dec dword [ebp - 0x44]
jne 0x528479
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe8]
mov cl, 1
mov edx, dword [ebp - 0x20]
call fcn.004da778
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xe8]
mov ecx, dword [ecx + 0x24]
and ecx, 0xff0000
shr ecx, 0x10
mov byte [edx + eax], cl
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xe8]
mov ecx, dword [ecx + 0x24]
and ecx, 0xff00
shr ecx, 8
mov byte [edx + eax + 1], cl
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xe8]
mov cl, byte [ecx + 0x24]
and cl, 0xff
mov byte [edx + eax + 2], cl
jmp 0x528557
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax], 0
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax + 1], 0
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax + 2], 0
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x100
jne 0x528425
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
dec eax
test eax, eax
jl 0x528d0f
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 8], 0
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
dec eax
test eax, eax
jl 0x52877d
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 1
jne 0x528602
mov eax, ebx
and eax, 0x80000007
jns 0x5285af
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov edi, 1
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000007
jns 0x5285d6
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x5285ec
add edx, 7
sar edx, 3
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 2
jne 0x528674
mov eax, ebx
and eax, 0x80000003
jns 0x528619
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov edi, 3
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000003
jns 0x528644
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x52865e
add edx, 3
sar edx, 2
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 4
jne 0x5286e5
mov eax, ebx
and eax, 0x80000001
jns 0x52868b
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov edi, 0xf
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000001
jns 0x5286b7
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
sar edx, 1
jns 0x5286d2
adc edx, 0
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 8
jne 0x52870b
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 0x14]
add edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov dl, byte [ecx + edx]
mov byte [eax + esi], dl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + esi]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x10]
call fcn.004047c4
lea edx, [eax + esi]
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov ecx, dword [ebp - 0x3c]
lea eax, [ecx + eax]
mov ecx, 3
call fcn.004029a4
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x528770
fild dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
fcomp qword [eax]
fnstsw ax
sahf
jb 0x528770
fild dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
fcomp qword [eax + 8]
fnstsw ax
sahf
ja 0x528770
mov eax, dword [ebp - 0x18]
mov byte [eax + ebx], 0
add esi, 3
inc ebx
dec dword [ebp - 0x48]
jne 0x528598
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0xc]
lea ecx, [ecx + ecx*2]
pop edx
call fcn.004029a4
inc dword [ebp - 8]
dec dword [ebp - 0x44]
jne 0x528581
jmp 0x528d0f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529058
call fcn.004046b8
jne 0x528d0f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x5290b0
call fcn.004046b8
jne 0x528d0f
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x528994
mov eax, dword [ebp - 4]
cmp dword [eax + 0x88], 0
je 0x528815
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0040349c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x88], edx
mov dl, 1
mov eax, dword [0x4242d0]
call fcn.0042a704
mov edx, dword [ebp - 4]
mov dword [edx + 0x88], eax
xor eax, eax
push ebp
push 0x528888
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov dl, 3
call fcn.0042bcdc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5288c7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
call fcn.00425f18
xor eax, eax
push ebp
push 0x528968
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
mov eax, dword [eax + 0x14]
mov edx, 0xffffff
call fcn.00425a48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.00419c90
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
pop edx
call fcn.00425e68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52896f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
call fcn.0042accc
call fcn.004261d0
ret
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
lea edx, [edx + edx*2]
lea eax, [ebp - 0x10]
call fcn.004048f8
push pe_nt_image_headers32
lea eax, [ebp - 0x3c]
mov ecx, 1
mov edx, dword [0x525d40]
call fcn.00405974
add esp, 4
xor eax, eax
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x30]
jl 0x5289d6
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
test ebx, ebx
jl 0x528a8e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.0040456c
lea edx, [ebx + 1]
cmp eax, edx
jl 0x528a8e
mov eax, ebx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
mov al, byte [edx + eax]
and eax, 0xff
mov dword [ebp - 0xc8], eax
fild dword [ebp - 0xc8]
fdiv dword [0x5290e4]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe4]
mov dl, 1
call fcn.004d9b50
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xe4]
mov ecx, dword [ecx + 0x50]
and ecx, 0xff0000
shr ecx, 0x10
mov byte [edx + eax], cl
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xe4]
mov ecx, dword [ecx + 0x50]
and ecx, 0xff00
shr ecx, 8
mov byte [edx + eax + 1], cl
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xe4]
mov cl, byte [ecx + 0x50]
and cl, 0xff
mov byte [edx + eax + 2], cl
jmp 0x528ab7
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax], 0
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax + 1], 0
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x3c]
mov byte [edx + eax + 2], 0
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x100
jne 0x5289c5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
dec eax
test eax, eax
jl 0x528d0f
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 8], 0
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
dec eax
test eax, eax
jl 0x528cdd
inc eax
mov dword [ebp - 0x48], eax
xor ebx, ebx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 1
jne 0x528b62
mov eax, ebx
and eax, 0x80000007
jns 0x528b0f
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov edi, 1
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000007
jns 0x528b36
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x528b4c
add edx, 7
sar edx, 3
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 2
jne 0x528bd4
mov eax, ebx
and eax, 0x80000003
jns 0x528b79
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov edi, 3
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000003
jns 0x528ba4
dec eax
or eax, 0xfffffffc
inc eax
mov edx, 3
sub edx, eax
mov ecx, edx
add ecx, ecx
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
test edx, edx
jns 0x528bbe
add edx, 3
sar edx, 2
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 4
jne 0x528c45
mov eax, ebx
and eax, 0x80000001
jns 0x528beb
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov edi, 0xf
shl edi, cl
lea eax, [ebp - 0x10]
call fcn.004047c4
add eax, esi
push eax
mov eax, ebx
and eax, 0x80000001
jns 0x528c17
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov eax, dword [ebp - 8]
imul dword [ebp - 0x14]
mov edx, ebx
sar edx, 1
jns 0x528c32
adc edx, 0
add eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
movzx eax, byte [edx + eax]
and eax, edi
shr eax, cl
pop edx
mov byte [edx], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 8
jne 0x528c6b
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 8]
imul edx, dword [ebp - 0x14]
add edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov dl, byte [ecx + edx]
mov byte [eax + esi], dl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + esi]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x10]
call fcn.004047c4
lea edx, [eax + esi]
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov ecx, dword [ebp - 0x3c]
lea eax, [ecx + eax]
mov ecx, 3
call fcn.004029a4
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 4
jne 0x528cd0
fild dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
fcomp qword [eax]
fnstsw ax
sahf
jb 0x528cd0
fild dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
fcomp qword [eax + 8]
fnstsw ax
sahf
ja 0x528cd0
mov eax, dword [ebp - 0x18]
mov byte [eax + ebx], 0
add esi, 3
inc ebx
dec dword [ebp - 0x48]
jne 0x528af8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 8]
call fcn.0042ae3c
push eax
lea eax, [ebp - 0x10]
call fcn.004047c4
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0xc]
lea ecx, [ecx + ecx*2]
pop edx
call fcn.004029a4
inc dword [ebp - 8]
dec dword [ebp - 0x44]
jne 0x528ae1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xdc]
call fcn.0040456c
test eax, eax
jle 0x528d2f
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 4]
call fcn.0051f17c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529058
call fcn.004046b8
jne 0x528d53
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, 0x529090
call fcn.004046b8
je 0x528d65
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x529090
call fcn.004046b8
jne 0x528d73
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 4]
call fcn.0052073c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
mov edx, 0x5290b0
call fcn.004046b8
jne 0x528d93
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 4]
call fcn.00520a7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x528da7
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 0
jne 0x528e7d
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc1], 0
jne 0x528e7d
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc2], 1
je 0x528e7d
cmp byte [ebp - 0x35], 0
jne 0x528e7d
mov eax, dword [ebp - 4]
add eax, 0x34
xor edx, edx
call fcn.004048f8
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x18]
mov dl, 1
mov eax, dword [0x4ab098]
call fcn.004ac7c0
mov dword [ebp - 0x30], eax
xor eax, eax
push ebp
push 0x528e4d
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x419384]
call fcn.0040346c
mov edx, dword [ebp - 4]
mov dword [edx + 0xd8], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xd8]
mov eax, dword [ebp - 0x30]
call fcn.004ac9f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x528e54
mov eax, dword [ebp - 0x30]
call fcn.0040349c
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc3], 0
je 0x528fae
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 0
je 0x528fae
mov eax, dword [ebp - 4]
mov byte [eax + 0xc2], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0xc4], 4
mov eax, dword [ebp - 4]
cmp dword [eax + 0x18], 0
je 0x528fae
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x18]
mov dl, 1
mov eax, dword [0x4ab098]
call fcn.004ac7c0
mov dword [ebp - 0x30], eax
xor eax, eax
push ebp
push 0x528fa7
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x3d], 0
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 1
jne 0x528f07
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8c]
mov edx, 0x529024
call fcn.004d36ec
mov byte [ebp - 0x3d], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 2
jne 0x528f29
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8c]
mov edx, 0x529024
call fcn.004d36ec
mov byte [ebp - 0x3d], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 3
jne 0x528f4b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8c]
mov edx, 0x529024
call fcn.004d36ec
mov byte [ebp - 0x3d], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x88], 0
je 0x528f6b
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x88]
mov cl, byte [ebp - 0x3d]
mov eax, dword [ebp - 0x30]
call fcn.004acb88
mov dl, 1
mov eax, dword [0x419384]
call fcn.0040346c
mov edx, dword [ebp - 4]
mov dword [edx + 0xd8], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xd8]
mov eax, dword [ebp - 0x30]
call fcn.004ac9f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x528fae
mov eax, dword [ebp - 0x30]
call fcn.0040349c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x529014
lea eax, [ebp - 0xc4]
mov edx, dword [0x4f6bc8]
call fcn.00404f38
lea eax, [ebp - 0x3c]
mov edx, dword [0x525d40]
call fcn.00405a94
lea eax, [ebp - 0x24]
mov edx, dword [0x525d08]
call fcn.00405a94
lea eax, [ebp - 0x20]
mov edx, dword [0x4d8580]
call fcn.00405a94
lea eax, [ebp - 0x18]
mov edx, dword [0x525cd0]
call fcn.00405a94
lea eax, [ebp - 0x10]
call fcn.004042ac
ret