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

Disassembly:
mov edx, dword [ecx + 0x7c]
mov eax, edx
and eax, 0x20
cmp dword [ecx + 0x14], 0
je 0x58f4fd
mov edx, dword [ecx + 0x38]
test eax, eax
je 0x58f4e1
test edx, edx
jne 0x58f4dc
cmp dword [ecx + 0x54], edx
jne 0x58f4dc
cmp dword [ecx + 0x20], edx
jne 0x591a70
jmp fcn.00592400
jmp fcn.00592690
test edx, edx
jne 0x58f4f8
cmp dword [ecx + 0x54], edx
jne 0x58f4f8
cmp dword [ecx + 0x20], edx
jne 0x58f5b0
jmp fcn.0058fb70
jmp fcn.0058fe00
test eax, eax
je 0x58f540
cmp dword [ecx + 0x38], 0
jne 0x58f53b
cmp dword [ecx + 0x54], 0
jne 0x58f53b
cmp dword [ecx + 0x20], 0
je 0x58f536
cmp dword [ecx + 0x30], 0x100
jl 0x58f531
cmp dword [ecx + 0x6c], 0
jne 0x58f531
cmp dword [ecx + 0x34], 0
jne 0x591f70
jmp fcn.00591d60
jmp fcn.00591850
jmp fcn.00591670
jmp fcn.005921f0
test dl, 0x10
je 0x58f589
cmp dword [ecx + 0x38], 0
jne 0x58f57a
cmp dword [ecx + 0x54], 0
jne 0x58f57a
cmp dword [ecx + 0x20], 0
je 0x58f575
cmp dword [ecx + 0x30], 0x100
jl 0x58f570
cmp dword [ecx + 0x34], 0
je 0x58f570
cmp dword [ecx + 0x6c], 0
je 0x590c90
jmp fcn.00590a90
jmp fcn.005908d0
cmp dword [ecx + 0x20], 0
jne 0x591410
jmp fcn.00591210
cmp dword [ecx + 0x20], 0
mov eax, dword [ecx + 0x54]
je 0x58f5a0
cmp eax, 2
je 0x590480
jmp fcn.00590260
cmp eax, 2
je 0x5906d0
jmp fcn.00590090
push ebp
mov ebp, esp
sub esp, 0x4c
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x48], 0
push edi
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 0x14]
sar edi, 3
cmp dword [esi + 0x1c], 0
mov dword [ebp - 0x38], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x34], eax
mov dword [ebp - 8], edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x44], edi
jle 0x58f8a1
xor edi, edi
mov dword [ebp - 0x30], edi
cmp dword [ebp - 0x44], edi
jle 0x58f85d
mov ecx, ebx
mov ebx, dword [ebp - 0x38]
sub ebx, dword [ebp - 0x14]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x10], ebx
nop
mov eax, dword [ecx + ebx]
or eax, dword [ecx + ebx + 4]
je 0x58f841
mov eax, dword [ecx]
or eax, dword [ecx + 4]
je 0x58f841
lea eax, [edi*8]
lea edi, [eax + 8]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], edi
cmp eax, edi
jge 0x58f83e
mov ecx, dword [ebp - 0x3c]
lea edi, [eax + ecx]
mov eax, dword [ebp - 0x14]
sub eax, ecx
mov dword [ebp - 0x2c], edi
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x4c], eax
add eax, edi
mov dl, byte [eax + ebx]
test dl, dl
je 0x58f822
mov al, byte [eax]
mov byte [ebp - 1], al
test al, al
je 0x58f822
mov ecx, dword [esi + 0x30]
movzx eax, dl
imul eax, ecx
cdq
and edx, 0xff
lea ebx, [edx + eax]
movzx edx, byte [ebp - 1]
sar ebx, 8
cmp dword [esi + 0x74], 0
je 0x58f6d6
cmp dword [esi + 0x78], edx
ja 0x58f6d2
cmp dword [esi + 0x54], 2
jne 0x58f6e5
cmp dword [esi + 0x70], 0
mov eax, dword [esi + 0x68]
je 0x58f6ba
imul ecx, ebx
shr ecx, 8
cmp ecx, eax
sbb ebx, ebx
and ebx, 0xffffff01
add ebx, 0xff
jmp 0x58f6e5
cmp ebx, eax
sbb ebx, ebx
and ebx, 0xffffff01
add ebx, 0xff
imul ebx, ecx
shr ebx, 8
jmp 0x58f6e5
xor ebx, ebx
jmp 0x58f6e5
imul edx, ebx
mov eax, 0x80808081
mul edx
mov ebx, edx
shr ebx, 7
cmp dword [esi + 0x6c], 0
je 0x58f6fc
cmp ebx, dword [esi + 0x68]
sbb ebx, ebx
and ebx, 0xffffff01
add ebx, 0xff
mov ecx, dword [ebp - 0x28]
lea eax, [ecx*4]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [esi + 0xa4]
imul eax, ecx
mov ecx, esi
push eax
push dword [ebp - 0x34]
call fcn.00589cd0
cmp ebx, 0xff
jae 0x58f815
mov cl, byte [edi]
mov eax, dword [esi + 0x34]
test cl, cl
je 0x58f7ea
imul edi, ebx, 0x101
inc edi
shr edi, 1
test eax, eax
je 0x58f777
cmp cl, 0xff
jae 0x58f777
mov ebx, 0x8000
imul eax, edi, 0xff
sub ebx, edi
movzx ecx, cl
imul ebx, ecx
xor edx, edx
add ebx, eax
shr ebx, 0xf
div ebx
mov edi, eax
mov eax, dword [ebp - 0x2c]
mov byte [eax], bl
mov ebx, dword [ebp - 0x1c]
mov edx, 0x8000
mov eax, dword [ebp - 8]
sub edx, edi
movzx ecx, byte [ebx + eax]
mov eax, edi
imul eax, dword [ebp - 0x18]
imul ecx, edx
add ecx, 0x4000
add eax, ecx
mov ecx, dword [ebp - 8]
shr eax, 0xf
mov byte [ebx + ecx], al
mov eax, edi
movzx ecx, byte [ebx + ecx + 1]
imul eax, dword [ebp - 0x20]
imul edi, dword [ebp - 0x24]
imul ecx, edx
add edi, 0x4000
add ecx, 0x4000
add eax, ecx
mov ecx, dword [ebp - 8]
shr eax, 0xf
mov byte [ebx + ecx + 1], al
movzx eax, byte [ebx + ecx + 2]
imul eax, edx
mov edx, ecx
mov ecx, dword [ebp - 0xc]
add eax, edi
mov edi, dword [ebp - 0x2c]
shr eax, 0xf
mov byte [ebx + edx + 2], al
mov ebx, dword [ebp - 0x10]
jmp 0x58f825
mov edx, dword [ebp - 8]
test eax, eax
je 0x58f80d
mov byte [edi], bl
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [ebp - 0x18]
mov byte [ecx + edx], al
movzx eax, byte [ebp - 0x20]
mov byte [ecx + edx + 1], al
movzx eax, byte [ebp - 0x24]
mov byte [ecx + edx + 2], al
mov ebx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
jmp 0x58f825
cmp dword [esi + 0x34], 0
je 0x58f81d
mov byte [edi], bl
mov edx, dword [ebp - 8]
jmp 0x58f7f3
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
inc edi
inc eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
cmp eax, ecx
mov eax, dword [ebp - 0x4c]
jl 0x58f654
mov ecx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x30]
inc edi
add ecx, 8
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x40], ecx
cmp edi, dword [ebp - 0x44]
jl 0x58f610
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x14]
test eax, eax
je 0x58f86a
add eax, dword [esi + 0x90]
mov dword [ebp - 0x34], eax
mov edi, dword [ebp - 0x38]
add edi, dword [esi + 0x94]
add edx, dword [esi + 0x98]
add ecx, dword [esi + 0x9c]
add ebx, dword [esi + 0xa0]
mov dword [ebp - 0x38], edi
mov edi, dword [ebp - 0x48]
inc edi
mov dword [ebp - 8], edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x48], edi
cmp edi, dword [esi + 0x1c]
jl 0x58f5f3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebp
mov ebp, esp
sub esp, 0x2c
push esi
mov esi, ecx
mov dword [ebp - 0x20], 0
push edi
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
sar eax, 3
cmp dword [esi + 0x1c], 0
mov dword [ebp - 0x1c], edi
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x2c], eax
jle 0x590679
push ebx
xor ebx, ebx
mov dword [ebp - 0x18], ebx
test eax, eax
jle 0x59064d
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [edi + ebx*8]
or eax, dword [edi + ebx*8 + 4]
je 0x59063b
lea ecx, [ebx*8]
lea eax, [ecx + 8]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x24], eax
cmp ecx, eax
jge 0x59063b
mov ebx, dword [ebp - 0x10]
mov eax, edi
add ebx, ecx
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x28], eax
cmp dword [esi + 0x54], 2
movzx eax, byte [eax + ebx]
jne 0x590548
cmp dword [esi + 0x70], 0
je 0x590532
mov ecx, dword [esi + 0x30]
imul ecx, eax
shr ecx, 8
cmp ecx, dword [esi + 0x68]
mov ecx, dword [ebp - 8]
sbb eax, eax
and eax, 0xffffff01
add eax, 0xff
jmp 0x590548
cmp eax, dword [esi + 0x68]
sbb eax, eax
and eax, 0xffffff01
add eax, 0xff
imul eax, dword [esi + 0x30]
shr eax, 8
test eax, eax
je 0x590621
lea edi, [ecx*4]
mov dword [ebp - 0xc], edi
cmp eax, 0xff
jae 0x5906a4
mov cl, byte [ebx]
mov edx, dword [esi + 0x34]
test cl, cl
je 0x59067f
imul edi, eax, 0x101
inc edi
shr edi, 1
test edx, edx
je 0x5905a7
cmp cl, 0xff
jae 0x5905a7
mov ebx, 0x8000
imul eax, edi, 0xff
sub ebx, edi
movzx ecx, cl
imul ebx, ecx
xor edx, edx
add ebx, eax
shr ebx, 0xf
div ebx
mov edi, eax
mov eax, dword [ebp - 0x14]
mov byte [eax], bl
mov eax, dword [ebp - 4]
mov edx, 0x8000
mov ecx, dword [ebp - 0xc]
sub edx, edi
mov ebx, dword [ebp - 4]
movzx ecx, byte [ecx + eax]
mov eax, dword [esi + 0x44]
imul ecx, edx
imul eax, edi
add ecx, 0x4000
add eax, ecx
mov ecx, dword [ebp - 0xc]
shr eax, 0xf
mov byte [ecx + ebx], al
mov eax, ebx
movzx ecx, byte [ecx + eax + 1]
mov eax, dword [esi + 0x40]
imul ecx, edx
imul eax, edi
add ecx, 0x4000
add eax, ecx
mov ecx, dword [ebp - 0xc]
shr eax, 0xf
mov byte [ecx + ebx + 1], al
mov eax, ebx
movzx ecx, byte [ecx + eax + 2]
mov eax, dword [esi + 0x3c]
imul ecx, edx
mov edx, ebx
mov ebx, dword [ebp - 0x14]
imul eax, edi
add ecx, 0x4000
add eax, ecx
mov ecx, dword [ebp - 0xc]
shr eax, 0xf
mov byte [ecx + edx + 2], al
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
inc ecx
inc ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], ebx
cmp ecx, dword [ebp - 0x24]
jl 0x590505
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
inc ebx
mov dword [ebp - 0x18], ebx
cmp ebx, eax
jl 0x5904d0
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x20]
add edi, dword [esi + 0x94]
inc ebx
add edx, dword [esi + 0x98]
add ecx, dword [esi + 0x9c]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x20], ebx
cmp ebx, dword [esi + 0x1c]
jl 0x5904b7
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edx, edx
mov edx, dword [ebp - 4]
je 0x59061e
mov byte [ebx], al
movzx eax, byte [esi + 0x44]
mov byte [edi + edx], al
movzx eax, byte [esi + 0x40]
mov byte [edi + edx + 1], al
movzx eax, byte [esi + 0x3c]
mov byte [edi + edx + 2], al
jmp 0x59061e
cmp dword [esi + 0x34], 0
je 0x5906ac
mov byte [ebx], al
movzx eax, byte [esi + 0x44]
mov byte [edi + edx], al
movzx eax, byte [esi + 0x40]
mov byte [edi + edx + 1], al
movzx eax, byte [esi + 0x3c]
mov byte [edi + edx + 2], al
jmp 0x590621
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
mov esi, ecx
xor eax, eax
push edi
mov dword [ebp - 0x1c], eax
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], edx
mov dword [ebp - 0x18], edi
cmp dword [esi + 0x1c], eax
jle 0x59087e
nop dword [eax + eax]
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [esi + 0x18], ecx
jle 0x590856
mov eax, dword [ebp - 0x14]
mov ebx, edi
sub eax, edi
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x20], eax
nop dword [eax + eax]
cmp dword [esi + 0x54], 2
movzx eax, byte [eax + ebx]
jne 0x590763
cmp dword [esi + 0x70], 0
je 0x59074d
mov ecx, dword [esi + 0x30]
imul ecx, eax
shr ecx, 8
cmp ecx, dword [esi + 0x68]
mov ecx, dword [ebp - 8]
sbb eax, eax
and eax, 0xffffff01
add eax, 0xff
jmp 0x590763
cmp eax, dword [esi + 0x68]
sbb eax, eax
and eax, 0xffffff01
add eax, 0xff
imul eax, dword [esi + 0x30]
shr eax, 8
test eax, eax
je 0x590839
lea edi, [ecx*4]
mov dword [ebp - 0xc], edi
cmp eax, 0xff
jae 0x5908a7
mov cl, byte [ebx]
mov edx, dword [esi + 0x34]
test cl, cl
je 0x590885
imul edi, eax, 0x101
inc edi
shr edi, 1
test edx, edx
je 0x5907c2
cmp cl, 0xff
jae 0x5907c2
mov ebx, 0x8000
imul eax, edi, 0xff
sub ebx, edi
movzx ecx, cl
imul ebx, ecx
xor edx, edx
add ebx, eax
shr ebx, 0xf
div ebx
mov edi, eax
mov eax, dword [ebp - 0x10]
mov byte [eax], bl
mov ebx, dword [ebp - 4]
mov edx, 0x8000
mov ecx, dword [esi + 0x44]
sub edx, edi
mov eax, dword [ebp - 0xc]
imul ecx, edi
movzx eax, byte [eax + ebx]
imul eax, edx
add ecx, 0x4000
add eax, ecx
mov ecx, dword [ebp - 0xc]
shr eax, 0xf
mov byte [ecx + ebx], al
mov eax, ebx
movzx ecx, byte [ecx + eax + 1]
mov eax, dword [esi + 0x40]
imul ecx, edx
imul eax, edi
add ecx, 0x4000
add eax, ecx
mov ecx, dword [ebp - 0xc]
shr eax, 0xf
mov byte [ecx + ebx + 1], al
mov eax, ebx
movzx ecx, byte [ecx + eax + 2]
mov eax, dword [esi + 0x3c]
imul ecx, edx
mov edx, ebx
mov ebx, dword [ebp - 0x10]
imul eax, edi
add ecx, 0x4000
add eax, ecx
mov ecx, dword [ebp - 0xc]
shr eax, 0xf
mov byte [ecx + edx + 2], al
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
inc ecx
inc ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], ebx
cmp ecx, dword [esi + 0x18]
jl 0x590720
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
add ebx, dword [esi + 0x94]
inc eax
add edx, dword [esi + 0x98]
add edi, dword [esi + 0x9c]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], edx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], eax
cmp eax, dword [esi + 0x1c]
jl 0x590700
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edx, edx
mov edx, dword [ebp - 4]
je 0x590836
mov byte [ebx], al
movzx eax, byte [esi + 0x44]
mov byte [edi + edx], al
movzx eax, byte [esi + 0x40]
mov byte [edi + edx + 1], al
movzx eax, byte [esi + 0x3c]
mov byte [edi + edx + 2], al
jmp 0x590836
cmp dword [esi + 0x34], 0
je 0x5908af
mov byte [ebx], al
movzx eax, byte [esi + 0x44]
mov byte [edi + edx], al
movzx eax, byte [esi + 0x40]
mov byte [edi + edx + 1], al
movzx eax, byte [esi + 0x3c]
mov byte [edi + edx + 2], al
jmp 0x590839
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, ecx
mov dword [ebp - 0x34], 0
push ebx
push esi
push edi
mov edx, dword [eax + 0x18]
mov edi, dword [eax + 4]
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov esi, dword [eax + 0x10]
sar edx, 3
cmp dword [eax + 0x1c], 0
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x30], edx
jle 0x590ea7
xor edx, edx
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x30], edx
jle 0x590e73
mov ebx, edi
mov eax, ecx
sub ebx, ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x28], ebx
mov ebx, esi
sub ebx, ecx
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0xc]
mov esi, dword [eax]
mov ecx, dword [eax + 4]
mov eax, esi
or eax, ecx
je 0x590e4d
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
mov eax, dword [ebx + eax]
mov ebx, dword [ebp - 8]
or eax, dword [edi + ebx + 4]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x14]
je 0x591176
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + eax]
mov edx, dword [edx + ebx + 4]
mov ebx, dword [ebp - 0xc]
cmp ecx, 0xffffffff
ja 0x5910f5
jb 0x590d49
cmp esi, 0xffffffff
jae 0x5910f5
mov esi, dword [ebp - 0x10]
lea ecx, [esi*8]
test eax, eax
jne 0x590eae
test edx, edx
jne 0x590eae
lea eax, [ecx + 8]
mov dword [ebp - 0x38], eax
cmp ecx, eax
jge 0x590e4d
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
sub eax, edx
mov dword [ebp - 0x3c], eax
lea esi, [ecx + edx]
nop
mov al, byte [eax + esi]
test al, al
je 0x590e3c
cmp al, 0xff
jae 0x590e2f
mov dl, byte [esi]
mov byte [ebp - 1], dl
test dl, dl
je 0x590e14
movzx eax, al
imul edx, eax, 0x101
inc edx
shr edx, 1
cmp byte [ebp - 1], 0xff
jae 0x590dd2
imul eax, edx, 0xff
mov ebx, 0x8000
sub ebx, edx
movzx edx, byte [ebp - 1]
imul ebx, edx
xor edx, edx
add ebx, eax
shr ebx, 0xf
div ebx
mov byte [esi], bl
mov ebx, dword [ebp - 0xc]
mov edx, eax
mov edi, dword [ebp - 0xc]
mov eax, 0x8000
sub eax, edx
movzx edx, byte [ebx + ecx*4 + 2]
movzx ebx, byte [ebx + ecx*4 + 1]
imul edx, eax
movzx edi, byte [edi + ecx*4]
imul ebx, eax
imul edi, eax
add edx, 0x4000
shr edx, 0xf
add ebx, 0x4000
mov eax, edi
shr ebx, 0xf
add eax, 0x4000
mov dword [ebp - 0x24], edi
shr eax, 0xf
jmp 0x590e1c
mov byte [esi], al
xor dl, dl
xor bl, bl
xor al, al
mov edi, dword [ebp - 0xc]
mov byte [edi + ecx*4], al
mov byte [edi + ecx*4 + 1], bl
mov ebx, dword [ebp - 0xc]
mov byte [ebx + ecx*4 + 2], dl
jmp 0x590e3c
mov byte [esi], al
mov word [ebx + ecx*4], 0
mov byte [ebx + ecx*4 + 2], 0
mov eax, dword [ebp - 0x3c]
inc ecx
inc esi
cmp ecx, dword [ebp - 0x38]
jl 0x590d80
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
add ecx, 8
inc eax
mov dword [ebp - 8], ecx
cmp eax, dword [ebp - 0x30]
mov edx, eax
mov dword [ebp - 0x10], eax
mov eax, ecx
jl 0x590cf4
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x34]
add edi, dword [eax + 0x90]
inc edx
add ecx, dword [eax + 0x94]
add ebx, dword [eax + 0x98]
add esi, dword [eax + 0x9c]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x34], edx
cmp edx, dword [eax + 0x1c]
jl 0x590cd0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffff
jne 0x590fcd
cmp edx, eax
jne 0x590fcd
lea esi, [ecx + 8]
mov dword [ebp - 0x38], esi
cmp ecx, esi
jge 0x590e4d
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
sub eax, edx
mov dword [ebp - 0x40], eax
lea edi, [ecx + edx]
nop word [eax + eax]
mov al, byte [edi + eax]
test al, al
je 0x590fbb
cmp al, 0xff
jae 0x590fae
mov dl, byte [edi]
mov byte [ebp - 1], dl
test dl, dl
je 0x590f8a
movzx eax, al
imul edx, eax, 0x101
inc edx
shr edx, 1
cmp byte [ebp - 1], 0xff
jae 0x590f36
imul eax, edx, 0xff
mov ebx, 0x8000
sub ebx, edx
movzx edx, byte [ebp - 1]
imul ebx, edx
xor edx, edx
add ebx, eax
shr ebx, 0xf
div ebx
mov byte [edi], bl
mov ebx, dword [ebp - 0xc]
mov edx, eax
movzx eax, byte [ebx + ecx*4 + 2]
mov esi, 0x8000
sub esi, edx
imul edx, edx, 0xff
imul eax, esi
add eax, 0x4000
add eax, edx
shr eax, 0xf
mov dword [ebp - 0x24], eax
movzx eax, byte [ebx + ecx*4 + 1]
imul eax, esi
add eax, 0x4000
add eax, edx
add edx, 0x4000
shr eax, 0xf
mov dword [ebp - 0x3c], eax
movzx eax, byte [ebx + ecx*4]
imul eax, esi
mov esi, dword [ebp - 0x38]
add eax, edx
mov edx, dword [ebp - 0x3c]
shr eax, 0xf
mov dword [ebp - 0x2c], eax
jmp 0x590f9b
mov ebx, dword [ebp - 0xc]
mov byte [edi], al
or al, 0xff
mov dword [ebp - 0x24], eax
or dl, 0xff
mov byte [ebp - 0x2c], 0xff
mov eax, dword [ebp - 0x2c]
mov byte [ebx + ecx*4], al
mov eax, dword [ebp - 0x24]
mov byte [ebx + ecx*4 + 1], dl
mov byte [ebx + ecx*4 + 2], al
jmp 0x590fbb
mov byte [edi], al
mov word [ebx + ecx*4], 0xffff
mov byte [ebx + ecx*4 + 2], 0xff
mov eax, dword [ebp - 0x40]
inc ecx
inc edi
cmp ecx, esi
jl 0x590ee0
jmp 0x590e4a
lea eax, [ecx + 8]
mov dword [ebp - 0x3c], eax
cmp ecx, eax
jge 0x590e4d
mov eax, dword [ebp - 0x18]
add edi, ecx
mov edx, dword [ebp - 0x1c]
sub eax, edx
sub edx, dword [ebp - 0x14]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], edx
nop
lea esi, [edi + edx]
mov al, byte [eax + esi]
test al, al
je 0x5910e2
cmp al, 0xff
jae 0x5910cc
mov dl, byte [esi]
mov byte [ebp - 1], dl
test dl, dl
je 0x5910b6
movzx eax, al
imul ebx, eax, 0x101
inc ebx
shr ebx, 1
mov dword [ebp - 0x24], ebx
cmp dl, 0xff
jae 0x59104b
imul eax, ebx, 0xff
mov ebx, 0x8000
sub ebx, dword [ebp - 0x24]
movzx edx, dl
imul ebx, edx
xor edx, edx
add ebx, eax
shr ebx, 0xf
div ebx
mov byte [esi], bl
mov dword [ebp - 0x24], eax
mov ebx, eax
mov eax, dword [ebp - 0xc]
mov esi, 0x8000
movzx edx, byte [edi]
sub esi, ebx
imul edx, ebx
movzx eax, byte [eax + ecx*4]
imul eax, esi
add edx, 0x4000
add eax, edx
mov edx, dword [ebp - 0xc]
shr eax, 0xf
mov byte [edx + ecx*4], al
mov eax, dword [ebp - 0xc]
movzx edx, byte [edi]
imul edx, ebx
movzx eax, byte [eax + ecx*4 + 1]
imul eax, esi
add edx, 0x4000
add eax, edx
mov edx, dword [ebp - 0xc]
shr eax, 0xf
mov byte [edx + ecx*4 + 1], al
movzx eax, byte [edi]
movzx edx, byte [edx + ecx*4 + 2]
imul eax, ebx
mov ebx, dword [ebp - 0xc]
imul edx, esi
add eax, 0x4000
add eax, edx
mov edx, dword [ebp - 0x40]
shr eax, 0xf
jmp 0x5910de
mov edx, dword [ebp - 0x40]
mov byte [esi], al
movzx eax, byte [edi]
mov byte [ebx + ecx*4], al
movzx eax, byte [edi]
mov byte [ebx + ecx*4 + 1], al
mov al, byte [edi]
jmp 0x5910de
mov byte [esi], al
movzx eax, byte [edi]
mov byte [ebx + ecx*4], al
movzx eax, byte [edi]
mov byte [ebx + ecx*4 + 1], al
movzx eax, byte [edi]
mov byte [ebx + ecx*4 + 2], al
mov eax, dword [ebp - 0x38]
inc ecx
inc edi
cmp ecx, dword [ebp - 0x3c]
jl 0x590ff0
jmp 0x590e4a
mov esi, dword [ebp - 0x10]
mov ecx, esi
shl ecx, 5
test eax, eax
jne 0x591113
test edx, edx
jne 0x591113
xorps xmm0, xmm0
movups xmmword [ecx + ebx], xmm0
movups xmmword [ecx + ebx + 0x10], xmm0
jmp 0x59115c
cmp eax, 0xffffffff
jne 0x59112e
cmp edx, eax
jne 0x59112e
movaps xmm0, xmmword [0x6657b0]
movups xmmword [ecx + ebx], xmm0
movups xmmword [ecx + ebx + 0x10], xmm0
jmp 0x59115c
lea ecx, [esi*8]
lea edx, [ecx + 8]
cmp ecx, edx
jge 0x59115c
nop dword [eax]
movzx eax, byte [ecx + edi]
mov byte [ebx + ecx*4 + 2], al
movzx eax, byte [ecx + edi]
mov byte [ebx + ecx*4 + 1], al
movzx eax, byte [ecx + edi]
mov byte [ebx + ecx*4], al
inc ecx
cmp ecx, edx
jl 0x591140
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x20]
mov dword [esi + eax], 0xffffffff
mov dword [esi + eax + 4], 0xffffffff
jmp 0x590e4d
mov ecx, dword [ebp - 8]
mov eax, edx
mov esi, dword [ebp - 0x28]
shl eax, 5
mov edx, dword [ecx + esi]
mov ecx, dword [ecx + esi + 4]
test edx, edx
jne 0x59119e
test ecx, ecx
jne 0x59119e
xorps xmm0, xmm0
movups xmmword [eax + ebx], xmm0
movups xmmword [eax + ebx + 0x10], xmm0
jmp 0x5911ec
cmp edx, 0xffffffff
jne 0x5911b9
cmp ecx, edx
jne 0x5911b9
movaps xmm0, xmmword [0x6657b0]
movups xmmword [eax + ebx], xmm0
movups xmmword [eax + ebx + 0x10], xmm0
jmp 0x5911ec
mov esi, dword [ebp - 0x10]
lea ecx, [esi*8]
lea edx, [ecx + 8]
cmp ecx, edx
jge 0x5911ec
nop word [eax + eax]
movzx eax, byte [ecx + edi]
mov byte [ebx + ecx*4 + 2], al
movzx eax, byte [ecx + edi]
mov byte [ebx + ecx*4 + 1], al
movzx eax, byte [ecx + edi]
mov byte [ebx + ecx*4], al
inc ecx
cmp ecx, edx
jl 0x5911d0
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
mov eax, dword [ecx]
mov dword [edx + ecx], eax
mov eax, ecx
mov eax, dword [eax + 4]
mov dword [edx + ecx + 4], eax
jmp 0x590e50
push ebp
mov ebp, esp
sub esp, 0x44
mov edx, ecx
mov dword [ebp - 0x38], 0
push ebx
push esi
push edi
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + 4]
mov esi, dword [edx + 8]
mov ebx, dword [edx + 0xc]
mov edi, dword [edx + 0x10]
sar ecx, 3
cmp dword [edx + 0x1c], 0
mov dword [ebp - 8], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x34], ecx
jle 0x591609
xor ecx, ecx
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x34], ecx
jle 0x5915d5
nop
mov eax, dword [esi + ecx*8]
or eax, dword [esi + ecx*8 + 4]
je 0x5915c5
lea esi, [ecx*8]
lea eax, [esi + 8]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x3c], eax
cmp esi, eax
jge 0x5915c2
mov eax, dword [ebp - 0xc]
add edi, esi
mov ecx, dword [ebp - 0x1c]
sub eax, ecx
sub ecx, dword [ebp - 0x20]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], ecx
add ecx, edi
mov al, byte [ecx + eax]
test al, al
je 0x5915a8
movzx eax, al
mov dword [ebp - 0x24], eax
movzx eax, byte [ecx]
mov ecx, edx
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00589fb0
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x5915a2
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x28]
call fcn.00589dc0
lea ecx, [esi*4]
mov dword [ebp - 0x28], ecx
cmp ebx, 0xff
jae 0x591635
mov eax, dword [ebp - 8]
mov cl, byte [edi]
mov edx, dword [eax + 0x34]
test cl, cl
je 0x591610
imul eax, ebx, 0x101
inc eax
shr eax, 1
test edx, edx
je 0x59153a
cmp cl, 0xff
jae 0x59153a
mov ebx, 0x8000
imul edx, eax, 0xff
sub ebx, eax
movzx ecx, cl
imul ebx, ecx
mov eax, edx
add ebx, edx
xor edx, edx
shr ebx, 0xf
div ebx
mov byte [edi], bl
mov ebx, dword [ebp - 0x28]
mov esi, 0x8000
mov ecx, dword [ebp - 4]
sub esi, eax
movzx edx, byte [ebx + ecx]
mov ecx, eax
imul ecx, dword [ebp - 0x10]
imul edx, esi
add edx, 0x4000
add ecx, edx
mov edx, dword [ebp - 4]
shr ecx, 0xf
mov byte [ebx + edx], cl
mov ecx, eax
movzx edx, byte [ebx + edx + 1]
imul ecx, dword [ebp - 0x14]
imul eax, dword [ebp - 0x18]
imul edx, esi
add eax, 0x4000
add edx, 0x4000
add ecx, edx
mov edx, dword [ebp - 4]
shr ecx, 0xf
mov byte [ebx + edx + 1], cl
movzx ecx, byte [ebx + edx + 2]
imul ecx, esi
mov esi, dword [ebp - 0x2c]
add eax, ecx
shr eax, 0xf
mov byte [ebx + edx + 2], al
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x40]
inc esi
mov ecx, dword [ebp - 0x44]
inc edi
mov dword [ebp - 0x2c], esi
cmp esi, dword [ebp - 0x3c]
jl 0x591498
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, dword [ebp - 0x34]
jl 0x591460
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x38]
add eax, dword [edx + 0x90]
inc ecx
add esi, dword [edx + 0x94]
add ebx, dword [edx + 0x98]
add edi, dword [edx + 0x9c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x38], ecx
cmp ecx, dword [edx + 0x1c]
jl 0x591450
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edx, edx
je 0x59165f
movzx eax, byte [ebp - 0x10]
mov byte [edi], bl
mov ebx, dword [ebp - 4]
mov byte [ebx + esi*4], al
movzx eax, byte [ebp - 0x14]
mov byte [ebx + esi*4 + 1], al
movzx eax, byte [ebp - 0x18]
mov byte [ebx + esi*4 + 2], al
jmp 0x5915a5
mov edx, dword [ebp - 8]
cmp dword [edx + 0x34], 0
je 0x591640
mov byte [edi], bl
mov ebx, dword [ebp - 4]
movzx eax, byte [ebp - 0x10]
mov byte [ecx + ebx], al
movzx eax, byte [ebp - 0x14]
mov byte [ecx + ebx + 1], al
movzx eax, byte [ebp - 0x18]
mov byte [ecx + ebx + 2], al
jmp 0x5915a8
mov ebx, dword [ebp - 4]
mov edx, eax
jmp 0x5915a8
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x30], 0
push edi
mov eax, dword [esi + 8]
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 0x14]
sar edi, 3
cmp dword [esi + 0x1c], 0
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x34], edi
jle 0x591d53
nop dword [eax]
nop word [eax + eax]
mov dword [ebp - 0x20], 0
test edi, edi
jle 0x591d10
mov edi, dword [ebp - 0x24]
sub edi, dword [ebp - 0x14]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x1c], edi
nop dword [eax + eax]
mov eax, dword [ebx + edi]
or eax, dword [ebx + edi + 4]
je 0x591cf4
mov eax, dword [ebx]
or eax, dword [ebx + 4]
je 0x591cf4
mov edi, dword [ebp - 0x20]
shl edi, 3
mov dword [ebp - 8], edi
lea eax, [edi + 8]
mov dword [ebp - 0x38], eax
cmp edi, eax
jge 0x591cf1
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
sub eax, edx
mov dword [ebp - 0x3c], eax
lea ebx, [edi + edx]
mov dword [ebp - 0x18], ebx
mov edx, dword [ebp - 0x1c]
add eax, ebx
mov dl, byte [eax + edx]
test dl, dl
je 0x591cd7
mov al, byte [eax]
mov byte [ebp - 1], al
test al, al
je 0x591cd7
mov ecx, dword [esi + 0x30]
movzx edi, byte [ebp - 1]
movzx eax, dl
imul eax, ecx
cdq
and edx, 0xff
add edx, eax
sar edx, 8
cmp dword [esi + 0x74], 0
je 0x591ba4
cmp dword [esi + 0x78], edi
ja 0x591ba0
cmp dword [esi + 0x54], 2
jne 0x591bb1
cmp dword [esi + 0x70], 0
mov eax, dword [esi + 0x68]
je 0x591b88
imul ecx, edx
shr ecx, 8
cmp ecx, eax
sbb edx, edx
and edx, 0xffffff01
add edx, 0xff
jmp 0x591bb1
cmp edx, eax
sbb edx, edx
and edx, 0xffffff01
add edx, 0xff
imul edx, ecx
shr edx, 8
jmp 0x591bb1
xor edx, edx
jmp 0x591bb1
imul edi, edx
mov eax, 0x80808081
mul edi
shr edx, 7
cmp dword [esi + 0x6c], 0
je 0x591bc8
cmp edx, dword [esi + 0x68]
sbb edx, edx
and edx, 0xffffff01
add edx, 0xff
cmp edx, 0xff
jae 0x591cc7
mov cl, byte [ebx]
mov eax, dword [esi + 0x34]
test cl, cl
je 0x591c9d
imul edi, edx, 0x101
inc edi
shr edi, 1
test eax, eax
je 0x591c16
cmp cl, 0xff
jae 0x591c16
mov ebx, 0x8000
imul eax, edi, 0xff
sub ebx, edi
movzx ecx, cl
imul ebx, ecx
xor edx, edx
add ebx, eax
shr ebx, 0xf
div ebx
mov edi, eax
mov eax, dword [ebp - 0x18]
mov byte [eax], bl
mov ebx, dword [ebp - 0x10]
mov edx, 0x8000
mov eax, dword [ebp - 8]
sub edx, edi
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx + eax*4]
movzx eax, byte [ebx + eax*4]
imul ecx, edi
imul eax, edx
add ecx, 0x4000
add eax, ecx
mov ecx, dword [ebp - 8]
shr eax, 0xf
mov byte [ebx + ecx*4], al
mov eax, ecx
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx + eax*4 + 1]
movzx eax, byte [ebx + eax*4 + 1]
imul ecx, edi
imul eax, edx
add ecx, 0x4000
add eax, ecx
mov ecx, dword [ebp - 8]
shr eax, 0xf
mov byte [ebx + ecx*4 + 1], al
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + ecx*4 + 2]
mov eax, ebx
imul ecx, edi
mov edi, dword [ebp - 8]
movzx eax, byte [eax + edi*4 + 2]
add ecx, 0x4000
imul eax, edx
mov edx, ebx
mov ebx, dword [ebp - 0x18]
add eax, ecx
mov ecx, dword [ebp - 0xc]
shr eax, 0xf
mov byte [edx + edi*4 + 2], al
jmp 0x591cda
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
test eax, eax
je 0x591cd7
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
movzx eax, byte [ecx + edi*4]
mov byte [edx + edi*4], al
movzx eax, byte [ecx + edi*4 + 1]
mov byte [edx + edi*4 + 1], al
movzx eax, byte [ecx + edi*4 + 2]
mov byte [edx + edi*4 + 2], al
jmp 0x591cda
cmp dword [esi + 0x34], 0
je 0x591ccf
mov byte [ebx], dl
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
jmp 0x591ca9
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x3c]
inc edi
inc ebx
mov dword [ebp - 8], edi
mov dword [ebp - 0x18], ebx
cmp edi, dword [ebp - 0x38]
jl 0x591b20
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
add ebx, 8
inc eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp - 0x34]
jl 0x591ae0
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x24]
add edi, dword [esi + 0x94]
add ecx, dword [esi + 0x90]
add edx, dword [esi + 0x98]
add eax, dword [esi + 0x9c]
add ebx, dword [esi + 0xa0]
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0x30]
inc edi
mov dword [ebp - 0xc], ecx
cmp edi, dword [esi + 0x1c]
mov dword [ebp - 0x30], edi
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], ebx
jl 0x591ac0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
push ebx
mov ebx, dword [ecx + 0x18]
push esi
mov esi, dword [ecx + 4]
push edi
xor edi, edi
sar ebx, 3
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], edi
cmp dword [ecx + 0x1c], edi
jle 0x592187
nop dword [eax + eax]
mov dword [ebp - 8], 0
test ebx, ebx
jle 0x592150
mov ecx, dword [ebp - 0x18]
mov ebx, eax
sub ecx, eax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ecx
nop dword [eax]
mov edi, dword [ebx + ecx]
mov eax, edi
mov ecx, dword [ebx + ecx + 4]
or eax, ecx
je 0x59212e
mov eax, dword [ebx]
or eax, dword [ebx + 4]
je 0x5921b8
cmp ecx, 0xffffffff
ja 0x59218e
jb 0x592000
cmp edi, 0xffffffff
jae 0x59218e
mov eax, dword [ebp - 8]
lea ebx, [eax*8]
lea eax, [ebx + 8]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x2c], eax
cmp ebx, eax
jge 0x59212b
mov edi, dword [ebp - 0x1c]
add edi, ebx
mov eax, dword [ebp - 4]
mov al, byte [eax + edi]
test al, al
je 0x59211d
cmp al, 0xff
jae 0x592102
mov cl, byte [edi]
test cl, cl
je 0x5920ea
movzx eax, al
imul eax, eax, 0x101
inc eax
shr eax, 1
cmp cl, 0xff
jae 0x592074
mov ebx, 0x8000
imul edx, eax, 0xff
sub ebx, eax
movzx ecx, cl
imul ebx, ecx
mov eax, edx
add ebx, edx
xor edx, edx
shr ebx, 0xf
div ebx
mov byte [edi], bl
mov ebx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
mov esi, 0x8000
sub esi, eax
movzx edx, byte [ecx + ebx*4]
mov ecx, dword [ebp - 0x10]
imul edx, eax
movzx ecx, byte [ecx + ebx*4]
imul ecx, esi
add edx, 0x4000
add ecx, edx
mov edx, dword [ebp - 0x10]
shr ecx, 0xf
mov byte [edx + ebx*4], cl
mov ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + ebx*4 + 1]
mov ecx, dword [ebp - 0x10]
imul edx, eax
movzx ecx, byte [ecx + ebx*4 + 1]
imul ecx, esi
add edx, 0x4000
add ecx, edx
mov edx, dword [ebp - 0x10]
shr ecx, 0xf
mov byte [edx + ebx*4 + 1], cl
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx + ebx*4 + 2]
imul ecx, eax
movzx eax, byte [edx + ebx*4 + 2]
imul eax, esi
mov esi, dword [ebp - 0xc]
add eax, 0x4000
add eax, ecx
shr eax, 0xf
jmp 0x592119
mov byte [edi], al
movzx eax, byte [esi + ebx*4]
mov byte [edx + ebx*4], al
movzx eax, byte [esi + ebx*4 + 1]
mov byte [edx + ebx*4 + 1], al
mov al, byte [esi + ebx*4 + 2]
jmp 0x592119
mov byte [edi], al
movzx eax, byte [esi + ebx*4]
mov byte [edx + ebx*4], al
movzx eax, byte [esi + ebx*4 + 1]
mov byte [edx + ebx*4 + 1], al
movzx eax, byte [esi + ebx*4 + 2]
mov byte [edx + ebx*4 + 2], al
inc ebx
inc edi
mov dword [ebp - 0x20], ebx
cmp ebx, dword [ebp - 0x2c]
jl 0x592020
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
add ebx, 8
inc eax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x28]
jl 0x591fd0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x18]
inc edi
add ebx, dword [ecx + 0x94]
add esi, dword [ecx + 0x90]
add edx, dword [ecx + 0x98]
add eax, dword [ecx + 0x9c]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], edi
cmp edi, dword [ecx + 0x1c]
jl 0x591fb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
shl eax, 5
movups xmm0, xmmword [eax + esi]
movups xmmword [eax + edx], xmm0
movups xmm0, xmmword [eax + esi + 0x10]
movups xmmword [eax + edx + 0x10], xmm0
mov dword [ebx], 0xffffffff
mov dword [ebx + 4], 0xffffffff
jmp 0x59212e
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
shl eax, 5
movups xmm0, xmmword [eax + esi]
movups xmmword [eax + edx], xmm0
movups xmm0, xmmword [eax + esi + 0x10]
movups xmmword [eax + edx + 0x10], xmm0
mov eax, dword [ebx + ecx]
mov dword [ebx], eax
mov eax, dword [ebx + ecx + 4]
mov dword [ebx + 4], eax
jmp 0x592131