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

Disassembly:
mov eax, 0x1f8c
call fcn.0052c7a0
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0xcc]
call fcn.00519be0
mov eax, dword [esp + 0x1fa4]
mov ecx, dword [esp + 0x1fa8]
mov edx, dword [ecx]
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0x1fa0]
lea ecx, [esp + 0xcc]
mov dword [esp + 0x27c], edx
mov dword [esp + 0x280], eax
mov dword [esp + 0x294], 0x20
call fcn.0050c580
mov ebp, dword [esp + 0x278]
mov eax, dword [esp + 0x28c]
mov ebx, dword [ebp + 4]
mov edx, dword [esp + 0x290]
shr eax, 4
add ebx, ebp
mov dword [esp + 0xac], eax
mov esi, ebx
add ebx, 0x40
mov eax, edx
mov ecx, 0x10
lea edi, [esp + 0x59c]
rep movsd dword es:[edi], dword [esi]
shr eax, 4
mov esi, ebx
mov ecx, 0x10
lea edi, [esp + 0x61c]
mov dword [esp + 0x28], eax
add ebx, 0x40
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov cl, byte [ebx]
inc cl
mov byte [esp + eax + 0x69c], cl
inc eax
inc ebx
cmp eax, 0x10
jb 0x51a132
test dword [ebp + 8], 0x8000000
je 0x51a18a
xor eax, eax
nop
movzx dx, byte [ebx]
mov word [esp + eax*2 + 0xec], dx
inc eax
inc ebx
cmp eax, 0x40
jb 0x51a150
xor eax, eax
jmp 0x51a170
movzx cx, byte [ebx]
mov word [esp + eax*2 + 0x16c], cx
inc eax
inc ebx
cmp eax, 0x40
jb 0x51a170
mov edx, dword [esp + 0x290]
mov eax, dword [ebp + 0x1c]
mov esi, dword [0x547224]
add eax, ebx
cmp dword [esp + 0x280], 0
mov dword [esp + 0x30], eax
jne 0x51a1bb
imul edx, dword [esp + 0x28c]
add edx, edx
add edx, edx
push edx
push 0
call esi
mov dword [esp + 0x280], eax
mov edi, dword [esp + 0x28c]
mov edx, dword [esp + 0x280]
add edi, edi
add edi, edi
mov eax, edi
shl eax, 4
xor ebp, ebp
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb0], edi
mov dword [esp + 0xbc], eax
cmp dword [esp + 0x298], ebp
jne 0x51a212
mov eax, dword [esp + 0x28]
imul eax, dword [esp + 0xac]
lea eax, [eax + eax*2]
add eax, eax
add eax, eax
add eax, eax
push eax
push ebp
call esi
mov dword [esp + 0x298], eax
mov ecx, dword [esp + 0x298]
mov dword [esp + 0x34], ebx
xor ebx, ebx
lea edx, [esp + 0x69c]
push edx
lea eax, [ebx + 0x10]
lea esi, [esp + 0x5a0]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebx
call fcn.00519af0
mov ecx, dword [esp + 0x28]
imul ecx, dword [esp + 0xac]
lea ecx, [ecx + ecx*2]
add ecx, ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0xa0], ecx
je 0x51a317
dec eax
mov dword [esp + 0xa8], eax
mov esi, dword [esp + 0xa8]
cmp esi, 0x10
jl 0x51a2b7
nop
test ebp, ebp
jne 0x51a296
mov eax, dword [esp + 0x34]
mov ebx, dword [eax]
add eax, 4
mov ebp, 0x20
mov dword [esp + 0x34], eax
mov eax, ebx
and eax, 1
shl eax, 9
add eax, esi
mov esi, dword [esp + eax*4 + 0x79c]
dec ebp
shr ebx, 1
cmp esi, 0x10
jge 0x51a280
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebp
test esi, esi
jle 0x51a2d0
mov eax, esi
lea ecx, [esp + 0x34]
call fcn.0051a000
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
jmp 0x51a2d2
xor eax, eax
lea ecx, [esi - 1]
mov edx, 1
shl edx, cl
cmp eax, edx
jge 0x51a2ec
mov edx, 1
mov ecx, esi
shl edx, cl
sub eax, edx
inc eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x298]
mov dword [edx + ecx*4], eax
test ecx, ecx
je 0x51a305
mov eax, dword [edx + ecx*4 - 4]
add dword [edx + ecx*4], eax
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, dword [esp + 0xa0]
jb 0x51a273
mov ecx, dword [esp + 0x30]
xor ebx, ebx
lea edx, [esp + 0x69c]
xor ebp, ebp
push edx
lea eax, [ebx + 0x10]
lea esi, [esp + 0x620]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebx
call fcn.00519af0
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x28]
test eax, eax
jbe 0x51be13
mov dword [esp + 0xa8], eax
mov esi, dword [esp + 0xac]
test esi, esi
jbe 0x51bdf7
mov eax, 4
sub eax, edi
mov dword [esp + 0x54], eax
mov eax, 1
sub eax, edi
mov dword [esp + 0x50], eax
mov eax, 5
sub eax, edi
mov dword [esp + 0x90], eax
mov eax, 2
sub eax, edi
mov dword [esp + 0x98], eax
mov eax, 6
sub eax, edi
mov dword [esp + 0x94], eax
mov eax, 8
sub eax, edi
mov dword [esp + 0x80], eax
mov eax, 0xc
sub eax, edi
mov dword [esp + 0x88], eax
mov eax, 9
sub eax, edi
mov dword [esp + 0x5c], eax
mov eax, 0xd
sub eax, edi
mov dword [esp + 0x84], eax
mov eax, 0xa
sub eax, edi
mov dword [esp + 0x64], eax
mov eax, 0xe
sub eax, edi
mov dword [esp + 0xa4], eax
mov eax, 0x10
sub eax, edi
mov dword [esp + 0x6c], eax
mov eax, 0x14
sub eax, edi
mov dword [esp + 0x8c], eax
mov eax, 0x11
sub eax, edi
mov dword [esp + 0x74], eax
mov eax, 0x15
sub eax, edi
mov dword [esp + 0x9c], eax
mov eax, 0x12
sub eax, edi
mov dword [esp + 0x7c], eax
mov eax, 0x16
sub eax, edi
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0xb4]
mov eax, 0x18
sub eax, edi
mov dword [esp + 0x58], eax
mov eax, 0x1c
sub eax, edi
mov dword [esp + 0x60], eax
mov eax, 0x19
sub eax, edi
mov dword [esp + 0x68], eax
mov eax, 0x1d
sub eax, edi
mov dword [esp + 0x70], eax
mov eax, 0x1a
sub eax, edi
mov dword [esp + 0x78], eax
mov eax, 0x1e
sub eax, edi
mov dword [esp + 0x28], eax
lea eax, [edx + 0x20]
mov dword [esp + 0x44], eax
lea eax, [edi*8]
lea ecx, [eax + edi]
add ecx, edx
mov dword [esp + 0x48], ecx
mov ecx, 0x20
sub ecx, eax
mov eax, 0x20
mov dword [esp + 0xc0], ecx
sub eax, edi
mov dword [esp + 0xc8], eax
mov dword [esp + 0xa0], esi
jmp 0x51a4d0
push 0x300
lea ecx, [esp + 0x2a0]
push 0
push ecx
call fcn.0052b220
lea edx, [esp + 0x2a8]
add esp, 0xc
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 6
lea ebx, [ebx]
mov eax, dword [esp + 0xb8]
mov cx, word [eax]
mov edx, dword [esp + 0x20]
add eax, 4
mov dword [esp + 0x24], 0
mov word [edx], cx
mov dword [esp + 0xb8], eax
mov esi, dword [esp + 0xc4]
dec esi
cmp esi, 0x10
jl 0x51a567
test ebp, ebp
jne 0x51a546
mov eax, dword [esp + 0x34]
mov ebx, dword [eax]
add eax, 4
mov ebp, 0x20
mov dword [esp + 0x34], eax
mov eax, ebx
and eax, 1
shl eax, 9
add eax, esi
mov esi, dword [esp + eax*4 + 0x79c]
dec ebp
shr ebx, 1
cmp esi, 0x10
jge 0x51a530
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebp
cmp esi, 0xf
je 0x51a607
test esi, esi
jne 0x51a5b6
lea ecx, [esp + 0x69c]
jmp 0x51a580
test ebp, ebp
jne 0x51a596
mov eax, dword [esp + 0x34]
mov ebx, dword [eax]
add eax, 4
mov ebp, 0x20
mov dword [esp + 0x34], eax
mov eax, ebx
and eax, 1
dec ebp
shr ebx, 1
test eax, eax
je 0x51a5a5
inc ecx
jmp 0x51a580
movzx eax, byte [ecx]
add dword [esp + 0x24], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebp
jmp 0x51a5fc
mov eax, esi
lea ecx, [esp + 0x34]
call fcn.0051a000
lea ecx, [esi - 1]
mov edx, 1
shl edx, cl
cmp eax, edx
jge 0x51a5db
mov edx, 1
mov ecx, esi
shl edx, cl
sub eax, edx
inc eax
mov ecx, dword [esp + 0x24]
movsx edx, word [ecx*2 + 0x568e40]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
inc ecx
mov word [esi + edx*2], ax
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x24], 0x3f
jb 0x51a523
sub dword [esp + 0x20], 0xffffff80
sub dword [esp + 0x18], 1
jne 0x51a500
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x2a0]
push ecx
call fcn.00519c50
lea edx, [esp + 0xec]
push edx
lea eax, [esp + 0x320]
push eax
call fcn.00519c50
lea ecx, [esp + 0xec]
push ecx
lea edx, [esp + 0x3a0]
push edx
call fcn.00519c50
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x420]
push ecx
call fcn.00519c50
lea edx, [esp + 0x16c]
push edx
lea eax, [esp + 0x4a0]
push eax
call fcn.00519c50
lea ecx, [esp + 0x16c]
push ecx
lea edx, [esp + 0x520]
push edx
call fcn.00519c50
mov eax, dword [esp + 0x44]
lea ecx, [eax - 0x20]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x29c]
lea eax, [edi + eax - 0x20]
lea esi, [esp + 0x520]
mov dword [esp + 0x2c], 4
lea ebx, [ebx]
movsx edx, word [esi - 0x84]
movsx ebx, word [esi - 4]
mov edi, edx
imul edx, edx, 0x5810
mov ebp, ebx
imul ebx, ebx, 0xb6c0
imul edi, edi, 0x1c590
sar edx, 0x10
imul ebp, ebp, 0x166f0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 2]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x10]
mov dword [esp + 0x20], edx
movsx edx, word [ecx]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x12]
mov dword [esp + 0x18], edx
sar edi, 0x10
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x24]
mov byte [ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x54]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + edi + 0x568ec0]
mov byte [eax], dl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x50]
mov edi, 4
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x90]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 1
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 5
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x98]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x94]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 2
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi - 2]
mov edi, 6
mov byte [eax + edi], dl
movsx edx, word [esi - 0x82]
mov edi, edx
imul edi, edi, 0x1c590
imul edx, edx, 0x5810
mov ebp, ebx
imul ebx, ebx, 0xb6c0
sar edx, 0x10
imul ebp, ebp, 0x166f0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 6]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x14]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 4]
add ebx, 0x180
add edx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x16]
mov dword [esp + 0x18], edx
sar edi, 0x10
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x80]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x88]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 8
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x5c]
mov edi, 0xc
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x84]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 9
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 0xd
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x64]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0xa4]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0xa
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi]
mov edi, 0xe
mov byte [eax + edi], dl
movsx edx, word [esi - 0x80]
mov edi, edx
imul edi, edi, 0x1c590
mov ebp, ebx
sar edi, 0x10
imul ebp, ebp, 0x166f0
imul edx, edx, 0x5810
imul ebx, ebx, 0xb6c0
sar edx, 0x10
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 0xa]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x18]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 8]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x1a]
mov dword [esp + 0x18], edx
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x6c]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x8c]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 0x10
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x74]
mov edi, 0x14
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x9c]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 0x11
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 0x15
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x7c]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x4c]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0x12
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi + 2]
mov edi, 0x16
mov byte [eax + edi], dl
movsx edx, word [esi - 0x7e]
mov edi, edx
imul edx, edx, 0x5810
mov ebp, ebx
imul edi, edi, 0x1c590
imul ebp, ebp, 0x166f0
sar edi, 0x10
sar ebp, 0x10
sar edx, 0x10
imul ebx, ebx, 0xb6c0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 0xe]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x1c]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 0xc]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x1e]
mov dword [esp + 0x18], edx
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x58]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x60]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 0x18
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x68]
mov edi, 0x1c
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x70]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 0x19
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
mov edi, 0x1d
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x78]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x28]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0x1a
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
mov edi, 0x1e
mov byte [eax + edi], dl
mov edx, dword [esp + 0xb0]
add edx, edx
add dword [esp + 0x24], edx
add ecx, 0x10
add eax, edx
add ecx, 0x10
add esi, 0x10
sub dword [esp + 0x2c], 1
mov dword [esp + 0x30], edx
jne 0x51a6c0
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x31c]
add eax, edx
lea esi, [esp + 0x528]
mov dword [esp + 0x2c], 4
movsx edx, word [esi - 0x84]
movsx ebx, word [esi - 4]
mov edi, edx
imul edx, edx, 0x5810
mov ebp, ebx
imul ebx, ebx, 0xb6c0
imul edi, edi, 0x1c590
sar edx, 0x10
imul ebp, ebp, 0x166f0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 2]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x10]
mov dword [esp + 0x20], edx
movsx edx, word [ecx]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x12]
mov dword [esp + 0x18], edx
sar edi, 0x10
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x24]
mov byte [ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x54]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + edi + 0x568ec0]
mov byte [eax], dl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x50]
mov edi, 4
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x90]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 1
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 5
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x98]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x94]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 2
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi - 2]
mov edi, 6
mov byte [eax + edi], dl
movsx edx, word [esi - 0x82]
mov edi, edx
imul edi, edi, 0x1c590
imul edx, edx, 0x5810
mov ebp, ebx
imul ebx, ebx, 0xb6c0
sar edx, 0x10
imul ebp, ebp, 0x166f0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 6]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x14]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 4]
add ebx, 0x180
add edx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x16]
mov dword [esp + 0x18], edx
sar edi, 0x10
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x80]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x88]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 8
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x5c]
mov edi, 0xc
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x84]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 9
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 0xd
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x64]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0xa4]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0xa
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi]
mov edi, 0xe
mov byte [eax + edi], dl
movsx edx, word [esi - 0x80]
mov edi, edx
imul edi, edi, 0x1c590
mov ebp, ebx
sar edi, 0x10
imul ebp, ebp, 0x166f0
imul edx, edx, 0x5810
imul ebx, ebx, 0xb6c0
sar edx, 0x10
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 0xa]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x18]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 8]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x1a]
mov dword [esp + 0x18], edx
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x6c]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x8c]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 0x10
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x74]
mov edi, 0x14
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x9c]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 0x11
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 0x15
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x7c]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x4c]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0x12
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi + 2]
mov edi, 0x16
mov byte [eax + edi], dl
movsx edx, word [esi - 0x7e]
mov edi, edx
imul edx, edx, 0x5810
mov ebp, ebx
imul edi, edi, 0x1c590
imul ebp, ebp, 0x166f0
sar edi, 0x10
sar ebp, 0x10
sar edx, 0x10
imul ebx, ebx, 0xb6c0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 0xe]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x1c]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 0xc]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x1e]
mov dword [esp + 0x18], edx
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x58]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x60]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 0x18
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x68]
mov edi, 0x1c
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x70]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 0x19
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
mov edi, 0x1d
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x78]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x28]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0x1a
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
mov edi, 0x1e
mov byte [eax + edi], dl
mov edx, dword [esp + 0x30]
add dword [esp + 0x24], edx
add ecx, 0x10
add eax, edx
add ecx, 0x10
add esi, 0x10
sub dword [esp + 0x2c], 1
jne 0x51ac92
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x44]
add eax, eax
add eax, eax
add eax, eax
lea edx, [eax + ecx - 0x20]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], edx
lea ecx, [esp + 0x39c]
lea esi, [esp + 0x560]
mov dword [esp + 0x2c], 4
movsx edx, word [esi - 0x84]
movsx ebx, word [esi - 4]
mov edi, edx
imul edx, edx, 0x5810
mov ebp, ebx
imul ebx, ebx, 0xb6c0
imul edi, edi, 0x1c590
sar edx, 0x10
imul ebp, ebp, 0x166f0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 2]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x10]
mov dword [esp + 0x20], edx
movsx edx, word [ecx]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x12]
mov dword [esp + 0x18], edx
sar edi, 0x10
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x24]
mov byte [ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x54]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + edi + 0x568ec0]
mov byte [eax], dl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x50]
mov edi, 4
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x90]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 1
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 5
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x98]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x94]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 2
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi - 2]
mov edi, 6
mov byte [eax + edi], dl
movsx edx, word [esi - 0x82]
mov edi, edx
imul edi, edi, 0x1c590
imul edx, edx, 0x5810
mov ebp, ebx
imul ebx, ebx, 0xb6c0
sar edx, 0x10
imul ebp, ebp, 0x166f0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 6]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x14]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 4]
add ebx, 0x180
add edx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x16]
mov dword [esp + 0x18], edx
sar edi, 0x10
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x80]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x88]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 8
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x5c]
mov edi, 0xc
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x84]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 9
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 0xd
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x64]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0xa4]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0xa
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi]
mov edi, 0xe
mov byte [eax + edi], dl
movsx edx, word [esi - 0x80]
mov edi, edx
imul edi, edi, 0x1c590
mov ebp, ebx
sar edi, 0x10
imul ebp, ebp, 0x166f0
imul edx, edx, 0x5810
imul ebx, ebx, 0xb6c0
sar edx, 0x10
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 0xa]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x18]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 8]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x1a]
mov dword [esp + 0x18], edx
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x6c]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x8c]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 0x10
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x74]
mov edi, 0x14
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x9c]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 0x11
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 0x15
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x7c]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x4c]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0x12
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi + 2]
mov edi, 0x16
mov byte [eax + edi], dl
movsx edx, word [esi - 0x7e]
mov edi, edx
imul edx, edx, 0x5810
mov ebp, ebx
imul edi, edi, 0x1c590
imul ebp, ebp, 0x166f0
sar edi, 0x10
sar ebp, 0x10
sar edx, 0x10
imul ebx, ebx, 0xb6c0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 0xe]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x1c]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 0xc]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x1e]
mov dword [esp + 0x18], edx
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x58]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x60]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 0x18
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x68]
mov edi, 0x1c
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x70]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 0x19
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
mov edi, 0x1d
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x78]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x28]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0x1a
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
mov edi, 0x1e
mov byte [eax + edi], dl
mov edx, dword [esp + 0x30]
add dword [esp + 0x24], edx
add ecx, 0x10
add eax, edx
add ecx, 0x10
add esi, 0x10
sub dword [esp + 0x2c], 1
jne 0x51b263
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xc8]
add ecx, eax
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x41c]
add eax, 0x20
lea esi, [esp + 0x568]
mov dword [esp + 0x30], 4
jmp 0x51b830
movsx edx, word [esi - 0x84]
movsx ebx, word [esi - 4]
mov edi, edx
imul edx, edx, 0x5810
mov ebp, ebx
imul ebx, ebx, 0xb6c0
imul edi, edi, 0x1c590
sar edx, 0x10
imul ebp, ebp, 0x166f0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 2]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x10]
mov dword [esp + 0x20], edx
movsx edx, word [ecx]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x12]
mov dword [esp + 0x18], edx
sar edi, 0x10
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x24]
mov byte [ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x54]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + edi + 0x568ec0]
mov byte [eax], dl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x50]
mov edi, 4
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x90]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 1
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 5
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x98]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x94]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 2
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi - 2]
mov edi, 6
mov byte [eax + edi], dl
movsx edx, word [esi - 0x82]
mov edi, edx
imul edi, edi, 0x1c590
imul edx, edx, 0x5810
mov ebp, ebx
imul ebx, ebx, 0xb6c0
sar edx, 0x10
imul ebp, ebp, 0x166f0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 6]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x14]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 4]
add ebx, 0x180
add edx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x16]
mov dword [esp + 0x18], edx
sar edi, 0x10
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x80]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x88]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 8
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x5c]
mov edi, 0xc
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x84]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 9
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 0xd
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x64]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0xa4]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0xa
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi]
mov edi, 0xe
mov byte [eax + edi], dl
movsx edx, word [esi - 0x80]
mov edi, edx
imul edi, edi, 0x1c590
mov ebp, ebx
sar edi, 0x10
imul ebp, ebp, 0x166f0
imul edx, edx, 0x5810
imul ebx, ebx, 0xb6c0
sar edx, 0x10
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 0xa]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x18]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 8]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x1a]
mov dword [esp + 0x18], edx
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x6c]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x8c]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 0x10
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x74]
mov edi, 0x14
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x9c]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 0x11
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
sar ebp, 0x10
mov edi, 0x15
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x7c]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x4c]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0x12
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
movsx ebx, word [esi + 2]
mov edi, 0x16
mov byte [eax + edi], dl
movsx edx, word [esi - 0x7e]
mov edi, edx
imul edx, edx, 0x5810
mov ebp, ebx
imul edi, edi, 0x1c590
imul ebp, ebp, 0x166f0
sar edi, 0x10
sar ebp, 0x10
sar edx, 0x10
imul ebx, ebx, 0xb6c0
sar ebx, 0x10
add edx, ebx
movsx ebx, word [ecx + 0xe]
add ebx, 0x180
mov dword [esp + 0x14], ebx
movsx ebx, word [ecx + 0x1c]
mov dword [esp + 0x20], edx
movsx edx, word [ecx + 0xc]
add edx, 0x180
add ebx, 0x180
mov dword [esp + 0x10], ebx
movsx ebx, word [ecx + 0x1e]
mov dword [esp + 0x18], edx
movzx edx, byte [edx + edi + 0x568ec0]
add ebx, 0x180
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x58]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x60]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + edi + 0x568ec0]
mov edx, 0x18
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + edi + 0x568ec0]
mov ebx, dword [esp + 0x68]
mov edi, 0x1c
mov byte [eax + edi], dl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x70]
sub edx, edi
movzx edx, byte [edx + 0x568ec0]
mov byte [eax + ebx], dl
mov edx, dword [esp + 0x10]
sub edx, edi
movzx ebx, byte [edx + 0x568ec0]
mov edx, 0x19
mov byte [eax + edx], bl
mov edx, dword [esp + 0x1c]
mov ebx, edx
sub ebx, edi
movzx ebx, byte [ebx + 0x568ec0]
mov edi, 0x1d
mov byte [eax + edi], bl
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x78]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, dword [esp + 0x28]
mov byte [eax + edi], bl
mov edi, dword [esp + 0x10]
movzx ebx, byte [edi + ebp + 0x568ec0]
mov edi, 0x1a
mov byte [eax + edi], bl
movzx edx, byte [edx + ebp + 0x568ec0]
mov edi, 0x1e
mov byte [eax + edi], dl
mov edi, dword [esp + 0xb0]
add ecx, 0x10
lea edx, [edi + edi]
add dword [esp + 0x24], edx
add eax, edx
add ecx, 0x10
add esi, 0x10
sub dword [esp + 0x30], 1
jne 0x51b830
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov eax, 0x40
add dword [esp + 0x44], eax
add dword [esp + 0x48], eax
sub dword [esp + 0xa0], 1
jne 0x51a4d0
mov eax, dword [esp + 0xbc]
add dword [esp + 0xb4], eax
sub dword [esp + 0xa8], 1
jne 0x51a360
mov eax, dword [esp + 0x298]
pop edi
pop esi
pop ebp
pop ebx
test eax, eax
je 0x51be29
push eax
call dword [0x547228]
mov eax, dword [esp + 0x270]
add esp, 0x1f8c
ret 0xc