Function at 0x103ed030
Capabilities:
Encode data using xor
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40c
mov eax, dword [0x11ad127c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [ebp + 0x18], 0
mov eax, dword [ebp + 0xc]
push ebx
mov dword [ebp - 0x40c], eax
mov ebx, ecx
mov eax, dword [ebp + 0x14]
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x408], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x3dc], ebx
mov dword [ebp - 0x3fc], edi
mov dword [ebp - 0x400], eax
je 0x103ed093
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0xa7bc], eax
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0xa7c0], eax
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0xa7c4], eax
mov ecx, dword [edi + 0x7dc]
test ecx, ecx
je 0x103eec1a
mov edx, dword [edi + 0x7e0]
test edx, edx
je 0x103eec1a
mov eax, dword [ebx + 0x124]
shl eax, 4
cmp ecx, eax
ja 0x103eec1a
mov eax, dword [ebx + 0x128]
shl eax, 4
cmp edx, eax
ja 0x103eec1a
mov edx, dword [edi + 0x7c8]
mov dword [ebp - 0x3d4], edx
test edx, edx
je 0x103eec1a
cmp byte [ebx + 0x12d], 0
jne 0x103ed124
lea eax, [ecx + 0xf]
shr eax, 4
lea ecx, [ebx + 0xc]
mov dword [ecx], eax
mov esi, dword [edi + 0x7e0]
add esi, 0xf
mov dword [ebp - 0x3e4], eax
lea eax, [ebx + 0x10]
shr esi, 4
mov dword [ebp - 0x3d8], ecx
mov dword [ebp - 0x404], eax
mov dword [eax], esi
mov dword [ebp - 0x3f0], ecx
jmp 0x103ed191
cmp dword [edi + 0x7ec], 0
jge 0x103ed130
inc dword [ebx + 0x20]
mov eax, dword [ebx + 0x20]
cmp eax, dword [ebx + 0x24]
jb 0x103ed141
mov dword [ebx + 0x20], 0
xor eax, eax
mov edx, dword [ebx + eax*4 + 0x28]
lea ecx, [ebx + 0xc]
mov eax, dword [edi + 0x7dc]
shr eax, 1
add eax, 0xf
mov dword [ebp - 0x3d4], edx
shr eax, 4
mov dword [ecx], eax
mov esi, dword [edi + 0x7e0]
shr esi, 1
add esi, 0xf
mov dword [ebp - 0x3e4], eax
shr esi, 4
lea eax, [ebx + 0x10]
mov dword [ebp - 0x3f0], ecx
mov dword [ebp - 0x3d8], ecx
mov dword [ebp - 0x404], eax
mov dword [eax], esi
test edx, edx
je 0x103eec1a
test byte [edi + 0x958], 3
je 0x103ed1a7
inc esi
and esi, 0xfffffffe
mov dword [eax], esi
test byte [edi + 0x958], 3
mov ecx, 0
mov eax, esi
setne cl
shr eax, cl
mov ecx, dword [ebx]
mov dword [ebx + 0x14], eax
call fcn.102eb970
test al, al
jne 0x103ed1ec
movzx eax, word [ebx + 0x3da]
push 0
push 0
push 1
and eax, 3
shl esi, 4
push eax
mov eax, dword [ebp - 0x3e4]
push esi
shl eax, 4
push eax
lea eax, [ebx + 0x13c]
push eax
call fcn.102fdd80
mov eax, dword [ebp - 0x3f0]
mov ecx, dword [ebx]
mov ax, word [eax]
shl ax, 4
dec ax
mov word [ebp - 0x3de], ax
mov word [ebx + 0x378], ax
mov ax, word [ebx + 0x14]
shl ax, 4
dec ax
movzx edx, ax
mov word [ebx + 0x37a], ax
movzx eax, word [ebx + 0x148]
mov word [ebx + 0x37c], ax
movzx eax, word [ebx + 0x14c]
mov word [ebx + 0x37e], ax
mov eax, dword [ebx + 0x15c]
mov dword [ebx + 0x384], eax
mov eax, dword [ebx + 0x164]
mov dword [ebx + 0x38c], eax
mov eax, dword [ebx + 0x160]
mov dword [ebx + 0x388], eax
mov eax, dword [ebx + 0x168]
mov dword [ebx + 0x390], eax
mov eax, dword [ebx + 0x394]
and eax, 0xffffff80
mov dword [ebp - 0x3d0], edx
mov dl, byte [ebx + 0x12d]
or eax, 0x80
and eax, 0xfffffbff
mov byte [ebp - 0x3f5], dl
mov dword [ebp - 0x3ec], eax
mov dword [ebx + 0x394], eax
mov eax, dword [edi]
test dl, dl
je 0x103ed2ae
mov esi, dword [ebx + eax*4 + 0x4c]
mov dword [ebp - 0x3e8], esi
jmp 0x103ed2bb
mov eax, dword [edi + eax*4 + 0x7f4]
mov dword [ebp - 0x3e8], eax
call fcn.102eb970
test al, al
je 0x103ed384
mov ecx, dword [ebp - 0x3e8]
mov esi, dword [ebx + 0x150]
call fcn.102cfed0
movzx eax, ax
xor edx, edx
div esi
mov ecx, dword [ebp - 0x3e8]
xor edx, edx
mov word [ebx + 0x37c], ax
mov eax, dword [ecx]
mov eax, dword [eax + 0x74]
movzx eax, word [eax + 0x2c]
div esi
mov dword [ebx + 0x384], 0
mov word [ebx + 0x37e], ax
mov eax, dword [ecx]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xf0]
shr eax, 8
mov dword [ebx + 0x388], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xf8]
shr eax, 8
mov dword [ebx + 0x38c], eax
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x3ec]
or ecx, 2
and ecx, 0xffffff7f
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xfc]
shr eax, 8
mov dword [ebx + 0x390], eax
mov eax, dword [ebx + 0x3d8]
and eax, 0x30000
mov dword [ebx + 0x394], ecx
cmp eax, 0x30000
jne 0x103ed384
or ecx, 0x300
mov dword [ebx + 0x388], 0
mov dword [ebx + 0x394], ecx
test dword [edi + 0x978], 0x4000000
je 0x103ed3f5
cmp byte [ebp - 0x3f5], 0
mov eax, dword [edi + 0x7e0]
je 0x103ed3c9
shr eax, 1
inc eax
and eax, 0xfffe
dec eax
movzx ecx, ax
mov eax, dword [edi + 0x7dc]
shr eax, 1
inc eax
and eax, 0xfffe
dec eax
movzx eax, ax
mov word [ebx + 0x398], ax
movzx eax, cx
jmp 0x103ed40c
inc eax
mov edx, 0xfffe
and eax, 0xfffe
dec eax
movzx ecx, ax
mov ax, word [edi + 0x7dc]
inc ax
and ax, dx
dec ax
movzx eax, ax
mov word [ebx + 0x398], ax
movzx eax, cx
jmp 0x103ed40c
mov ax, word [ebp - 0x3de]
mov word [ebx + 0x398], ax
mov eax, dword [ebp - 0x3d0]
movzx eax, ax
mov ecx, dword [ebp - 0x3d4]
mov word [ebx + 0x39a], ax
mov esi, dword [ebx + 0x150]
call fcn.102cfed0
movzx eax, ax
xor edx, edx
div esi
mov ecx, dword [ebp - 0x3d4]
mov word [ebx + 0x39c], ax
call fcn.102cfed0
movzx eax, ax
xor edx, edx
div esi
mov ecx, dword [ebx]
movzx eax, ax
mov dword [ebp - 0x3ec], eax
mov word [ebx + 0x39e], ax
call fcn.102eb970
test al, al
je 0x103ed491
mov ecx, dword [ebx + 0x3d8]
mov eax, ecx
and eax, 0x30000
cmp eax, 0x30000
jne 0x103ed491
test ecx, 0x40000000
jne 0x103ed491
mov eax, dword [ebp - 0x3ec]
xor edx, edx
movzx eax, ax
add eax, eax
div esi
mov word [ebx + 0x39e], ax
mov ecx, dword [ebp - 0x3d4]
mov dword [ebx + 0x3a4], 0
movups xmm0, xmmword [ebx + 0x378]
mov edx, dword [ebx + 0x3b4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xf0]
shr eax, 8
mov dword [ebx + 0x3a8], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xf8]
shr eax, 8
mov dword [ebx + 0x3ac], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xfc]
movups xmmword [ebx + 0x3b8], xmm0
shr eax, 8
movups xmm0, xmmword [ebx + 0x388]
mov dword [ebx + 0x3b0], eax
movups xmmword [ebx + 0x3c8], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x74]
cmp byte [eax + 0xbd], 0
je 0x103ed51b
and edx, 0xffffff82
or edx, 2
and edx, 0xffffff7f
jmp 0x103ed524
and edx, 0xffffff80
or edx, 0x80
mov dword [ebx + 0x3b4], edx
lea esi, [ebx + 0x43c]
mov ecx, dword [ebx + 0x3d8]
mov eax, edx
and ecx, 0x30000
and eax, 0xfffffcff
or edx, 0x300
cmp ecx, 0x30000
push 0x114
cmovne edx, eax
push 0
push esi
mov dword [ebx + 0x3b4], edx
call fcn.10425c00
add esp, 0xc
lea ecx, [edi + 0x878]
test esi, esi
je 0x103ed582
test ecx, ecx
je 0x103ed582
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x103ed592
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
lea edx, [ebx + 0x444]
lea ecx, [edi + 0x880]
test edx, edx
je 0x103ed5b9
test ecx, ecx
je 0x103ed5b2
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x103ed5c9
xorps xmm0, xmm0
movq qword [edx], xmm0
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
lea edx, [ebx + 0x44c]
lea ecx, [edi + 0x888]
test edx, edx
je 0x103ed5f0
test ecx, ecx
je 0x103ed5e9
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x103ed600
xorps xmm0, xmm0
movq qword [edx], xmm0
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
lea edx, [ebx + 0x454]
lea ecx, [edi + 0x890]
test edx, edx
je 0x103ed627
test ecx, ecx
je 0x103ed620
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x103ed637
xorps xmm0, xmm0
movq qword [edx], xmm0
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
lea eax, [ebx + 0x45c]
lea esi, [edi + 0x898]
test eax, eax
je 0x103ed66c
test esi, esi
je 0x103ed65c
mov ecx, 0x20
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x3fc]
jmp 0x103ed67c
push 0x80
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
lea edx, [ebx + 0x4dc]
lea ecx, [edi + 0x918]
test edx, edx
je 0x103ed6a3
test ecx, ecx
je 0x103ed69c
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x103ed6b3
xorps xmm0, xmm0
movq qword [edx], xmm0
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov dword [ebx + 0x4e4], 0
mov eax, dword [edi + 0x928]
mov dword [ebx + 0x4ec], eax
movzx eax, word [edi + 0x92c]
mov word [ebx + 0x4f0], ax
movzx eax, word [edi + 0x92e]
mov word [ebx + 0x4f2], ax
movzx eax, word [edi + 0x930]
mov word [ebx + 0x4f4], ax
mov eax, dword [edi + 0x298c]
cmp eax, 1
jb 0x103ed702
dec al
jmp 0x103ed704
xor al, al
mov esi, dword [ebp - 0x3d8]
xor ecx, ecx
cmp dword [ebx + 0x150], 2
mov byte [ebx + 0x4fc], al
mov eax, 0x2000
cmove ecx, eax
mov word [ebx + 0x4fd], 0
mov eax, dword [ebx + 0x534]
mov esi, dword [esi]
and eax, 0xffff0fff
or ecx, eax
mov byte [ebx + 0x4ff], 0
mov eax, dword [ebx + 0xa6f8]
mov dword [ebx + 0x500], eax
mov eax, dword [ebx + 0xa6f0]
mov dword [ebx + 0x508], eax
mov eax, dword [ebx + 0xa6ec]
mov dword [ebx + 0x504], eax
mov eax, dword [ebx + 0xa6f4]
mov dword [ebx + 0x534], ecx
mov ecx, dword [ebx]
mov dword [ebx + 0x50c], eax
mov eax, dword [ebx + 0xa6fc]
mov dword [ebx + 0x530], eax
call fcn.102eb9c0
test al, al
je 0x103ed795
lea eax, [esi + esi*2]
shl eax, 7
jmp 0x103ed7a2
mov eax, dword [ebx + 0x14]
inc eax
imul eax, esi
lea eax, [eax + eax*2]
shl eax, 6
add eax, 0xff
mov ecx, dword [ebx]
and eax, 0xffffff00
mov dword [ebx + 0x510], eax
mov eax, dword [ebx + 0x48]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x24]
sub eax, 0x100
mov dword [ebx + 0x518], 0
mov dword [ebx + 0x514], eax
mov esi, dword [edi + 0x958]
xor esi, dword [ebx + 0x51c]
and esi, 3
xor esi, dword [ebx + 0x51c]
mov dword [ebx + 0x51c], esi
mov eax, dword [edi + 0x958]
xor eax, esi
and eax, 0xc
xor esi, eax
mov dword [ebx + 0x51c], esi
mov eax, dword [edi + 0x958]
xor eax, esi
and eax, 0x10
xor esi, eax
and esi, 0xffffffdf
mov dword [ebx + 0x51c], esi
call fcn.102eb9c0
test al, al
je 0x103ed837
and esi, 0xffffffbf
cmp dword [ebx + 0x120], 0x5a
ja 0x103ed83a
and dword [ebx + 0x53c], 0xfeffffff
jmp 0x103ed83a
or esi, 0x40
and esi, 0xffffff7f
mov dword [ebx + 0x51c], esi
mov eax, dword [edi + 0x978]
xor eax, dword [ebx + 0x53c]
and eax, 0x4000000
xor dword [ebx + 0x53c], eax
mov ecx, dword [edi + 0x978]
mov eax, dword [ebx + 0x53c]
xor ecx, eax
and ecx, 0x18000000
xor ecx, eax
mov dword [ebx + 0x53c], ecx
mov eax, dword [edi + 0x978]
xor eax, ecx
mov dword [ebx + 0x4f8], 0
and eax, 0x60000000
xor eax, ecx
lea ecx, [edi + 0x770]
mov dword [ebx + 0x53c], eax
xor eax, eax
mov word [ebx + 0x4f6], ax
mov eax, dword [edi + 0x984]
mov dword [ebx + 0x548], eax
lea eax, [ebx + 0x3e4]
test eax, eax
je 0x103ed900
test ecx, ecx
je 0x103ed8f3
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [ecx + 0x40]
movups xmmword [eax + 0x40], xmm0
movq xmm0, qword [ecx + 0x50]
movq qword [eax + 0x50], xmm0
jmp 0x103ed910
push 0x58
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
cmp byte [ebx + 0x12d], 0
je 0x103ed943
shr dword [ebx + 0x400], 2
shr dword [ebx + 0x404], 2
shr dword [ebx + 0x408], 2
shr dword [ebx + 0x40c], 2
shr dword [ebx + 0x410], 2
mov byte [ebx + 0x42f], 0x21
mov eax, dword [ebx]
mov byte [ebx + 0x42d], 1
mov byte [ebp - 0x3e4], 0
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
test dword [eax + 0x48], 0x800000
je 0x103ed973
or dword [ebx + 0x570], 0x80000000
mov byte [ebp - 0x3e4], 1
push dword [ebp - 0x3e4]
movzx eax, word [ebx + 0x3ba]
mov ecx, dword [ebx + 8]
inc eax
push eax
movzx eax, word [ebx + 0x3b8]
inc eax
push eax
call fcn.103e5870
mov ecx, dword [ebx + 0x570]
lea esi, [ebx + 0x86e8]
push 0x2000
xor ecx, eax
mov dword [ebp - 0x3ec], esi
and ecx, 0x7fffffff
xor dword [ebx + 0x570], ecx
push 0
push esi
call fcn.10425c00
add esp, 0xc
cmp dword [edi + 0x2998], 0
je 0x103edb25
mov eax, dword [edi + 0x298c]
xor ecx, ecx
mov dword [ebp - 0x3e4], ecx
mov dword [ebp - 0x3e8], ecx
mov ecx, dword [edi + 0x7dc]
add ecx, 0xf
mov dword [ebp - 0x3dc], eax
shr ecx, 4
mov dword [ebp - 0x3f4], ecx
mov ecx, dword [edi + 0x7e0]
add ecx, 0xf
shr ecx, 4
mov dword [ebp - 0x3f0], ecx
cmp eax, 1
jae 0x103eda1f
mov dword [ebp - 0x3dc], 1
jmp 0x103eda27
test eax, eax
jle 0x103edead
mov edx, esi
lea eax, [edi + 0x98c]
mov dword [ebp - 0x3e0], edx
mov dword [ebp - 0x3d0], eax
nop dword [eax + eax]
mov ecx, 0x20
mov esi, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
cmp byte [ebx + 0x12d], 0
je 0x103edafb
mov edi, dword [edx]
mov eax, edi
mov ecx, dword [ebp - 0x3f4]
and eax, 0x7ffff
mov edx, dword [ebp - 0x3e8]
add edx, eax
mov esi, dword [ebx + 0x14]
mov dword [ebp - 0x3e8], edx
lea eax, [ecx - 1]
add eax, edx
cdq
idiv ecx
mov ecx, dword [ebp - 0x3f0]
xor edx, edx
imul eax, esi
shr ecx, 1
add eax, ecx
div dword [ebp - 0x3f0]
cmp eax, esi
cmovl esi, eax
mov eax, dword [ebp - 0x3d8]
mov ecx, dword [eax]
imul ecx, esi
mov edx, ecx
sub edx, dword [ebp - 0x3e4]
test edx, edx
jle 0x103edae7
mov eax, edi
mov dword [ebp - 0x3e4], ecx
xor eax, edx
mov edx, dword [ebp - 0x3e0]
and eax, 0x7ffff
xor eax, edi
mov dword [edx], eax
sub edx, 0xffffff80
mov eax, dword [ebp - 0x3d8]
mov dword [ebp - 0x3d8], eax
mov eax, dword [ebp - 0x3d0]
mov dword [ebp - 0x3e0], edx
jmp 0x103edb04
mov edx, dword [ebp - 0x3e0]
mov dword [ebp - 0x3d8], eax
mov eax, dword [ebp - 0x3d0]
jmp 0x103edb04
sub edx, 0xffffff80
mov dword [ebp - 0x3e0], edx
sub eax, 0xffffff80
sub dword [ebp - 0x3dc], 1
mov dword [ebp - 0x3d0], eax
jne 0x103eda40
mov edi, dword [ebp - 0x3fc]
jmp 0x103edead
mov esi, dword [ebp - 0x3d8]
mov dword [ebp - 0x3d0], 2
mov dword [ebp - 0x3d8], esi
mov ecx, dword [esi]
imul ecx, dword [ebx + 0x14]
xor ecx, dword [ebx + 0x86e8]
and ecx, 0x7ffff
xor ecx, dword [ebx + 0x86e8]
mov dword [ebx + 0x86e8], ecx
mov edx, dword [ebx + 0x51c]
shr edx, 2
and edx, 3
cmp edx, 3
mov eax, edx
cmove eax, dword [ebp - 0x3d0]
movsx eax, byte [ebx + eax + 0x3e5]
shl eax, 0x13
xor eax, ecx
and eax, 0x7f80000
xor eax, ecx
mov dword [ebx + 0x86e8], eax
cmp edx, 3
jne 0x103edb9d
mov al, byte [ebx + 0x3ea]
mov edx, 2
jmp 0x103edba4
mov al, byte [ebx + edx + 0x3e8]
mov byte [ebx + 0x86f1], al
mov eax, dword [ebp - 0x3d4]
mov dword [ebp - 0x3d4], eax
lea eax, [ebx + 0x10]
mov dword [ebp - 0x404], eax
mov al, byte [ebx + edx + 0x3eb]
mov byte [ebx + 0x86f2], al
and dword [ebx + 0x86f0], 0xe0ffff00
mov esi, dword [edi + 0xb8]
xor esi, dword [ebx + 0x86f4]
and esi, 1
xor esi, dword [ebx + 0x86f4]
mov dword [ebx + 0x86f4], esi
mov eax, dword [edi + 0xbc]
add eax, eax
xor eax, esi
and eax, 0x3e
xor esi, eax
mov dword [ebx + 0x86f4], esi
mov eax, dword [edi + 0xc0]
shl eax, 6
xor eax, esi
and eax, 0x7c0
xor esi, eax
mov dword [ebx + 0x86f4], esi
mov ecx, dword [ebx]
call fcn.102eb9c0
test al, al
je 0x103edc95
cmp dword [ebx + 0x120], 0x5a
ja 0x103edc95
cmp byte [ebx + 0x12d], 0
jne 0x103edc95
cmp byte [ebx + 0x12e], 0
jne 0x103edc95
and esi, 0xfffff801
mov eax, 0xfefefefe
mov dword [ebx + 0x86f4], esi
mov dword [ebx + 0x43d], eax
mov word [ebx + 0x441], ax
mov byte [ebx + 0x443], al
mov edx, dword [ebx + 0x86f4]
shr edx, 6
and edx, 0x1f
inc edx
cmp edx, 8
jae 0x103edc95
mov eax, 8
lea ecx, [ebx + 0x444]
sub eax, edx
add ecx, edx
push eax
push 0xfffffffffffffffe
push ecx
call fcn.10425c00
add esp, 0xc
and dword [ebx + 0x86f4], 0xfffff
mov eax, dword [edi + 0xc8]
shl eax, 0xd
xor eax, dword [ebx + 0x8700]
and eax, 0x2000
xor eax, dword [ebx + 0x8700]
mov dword [ebx + 0x8700], eax
mov ecx, dword [edi + 0xc4]
shl ecx, 0xc
xor ecx, eax
and ecx, 0x1000
xor ecx, eax
mov dword [ebx + 0x8700], ecx
mov eax, dword [edi + 0x210]
shl eax, 8
xor eax, ecx
and eax, 0xf00
xor eax, ecx
mov dword [ebx + 0x8700], eax
mov ecx, dword [edi + 0x220]
xor ecx, eax
and ecx, 0xf
xor ecx, eax
mov dword [ebx + 0x8700], ecx
mov eax, dword [edi + 0x224]
shl eax, 4
xor eax, ecx
and eax, 0xf0
xor eax, ecx
mov dword [ebx + 0x8700], eax
cmp dword [edi + 0x210], 0
jl 0x103edd9f
lea edx, [ebx + 0x8744]
xor ebx, ebx
lea esi, [edi + 0xd4]
mov eax, dword [esi - 4]
lea edx, [edx + 4]
xor eax, dword [edx - 4]
lea esi, [esi + 0x14]
and eax, 7
inc ebx
xor dword [edx - 4], eax
mov ecx, dword [esi - 0x14]
shl ecx, 3
xor ecx, dword [edx - 4]
and ecx, 0xffff8
xor ecx, dword [edx - 4]
mov dword [edx - 4], ecx
mov eax, dword [esi - 0x10]
shl eax, 0x14
xor eax, ecx
and eax, 0x700000
xor eax, ecx
mov dword [edx - 4], eax
mov ecx, dword [esi - 0xc]
shl ecx, 0x17
xor ecx, eax
and ecx, 0x3800000
xor ecx, eax
mov dword [edx - 4], ecx
mov eax, dword [esi - 8]
shl eax, 0x1a
xor eax, ecx
and eax, 0x3c000000
xor eax, ecx
mov dword [edx - 4], eax
cmp ebx, dword [edi + 0x210]
jle 0x103edd32
mov ebx, dword [ebp - 0x3dc]
cmp dword [edi + 0x220], 0
mov dword [ebp - 0x3d0], 0
jbe 0x103ede27
lea esi, [ebx + 0x8704]
lea ebx, [edi + 0x230]
nop
mov eax, dword [ebx - 8]
lea esi, [esi + 4]
xor eax, dword [esi - 4]
lea ebx, [ebx + 0x14]
and eax, 7
xor dword [esi - 4], eax
mov ecx, dword [ebx - 0x14]
shl ecx, 3
xor ecx, dword [esi - 4]
and ecx, 0xffff8
xor ecx, dword [esi - 4]
mov dword [esi - 4], ecx
mov edx, dword [ebx - 0xc]
shl edx, 0x18
xor edx, ecx
and edx, 0xf000000
xor edx, ecx
mov dword [esi - 4], edx
mov eax, dword [ebx - 0x10]
shl eax, 0x14
xor eax, edx
and eax, 0xf00000
xor eax, edx
mov dword [esi - 4], eax
mov eax, dword [ebp - 0x3d0]
inc eax
mov dword [ebp - 0x3d0], eax
cmp eax, dword [edi + 0x220]
jb 0x103eddc0
mov ebx, dword [ebp - 0x3dc]
cmp dword [edi + 0x224], 0
mov dword [ebp - 0x3d0], 0
jbe 0x103edead
lea esi, [ebx + 0x8724]
lea ebx, [edi + 0x4b0]
mov eax, dword [ebx - 8]
lea esi, [esi + 4]
xor eax, dword [esi - 4]
lea ebx, [ebx + 0x14]
and eax, 7
xor dword [esi - 4], eax
mov ecx, dword [ebx - 0x14]
shl ecx, 3
xor ecx, dword [esi - 4]
and ecx, 0xffff8
xor ecx, dword [esi - 4]
mov dword [esi - 4], ecx
mov edx, dword [ebx - 0xc]
shl edx, 0x18
xor edx, ecx
and edx, 0xf000000
xor edx, ecx
mov dword [esi - 4], edx
mov eax, dword [ebx - 0x10]
shl eax, 0x14
xor eax, edx
and eax, 0xf00000
xor eax, edx
mov dword [esi - 4], eax
mov eax, dword [ebp - 0x3d0]
inc eax
mov dword [ebp - 0x3d0], eax
cmp eax, dword [edi + 0x224]
jb 0x103ede46
mov ebx, dword [ebp - 0x3dc]
cmp byte [ebx + 0x12e], 0
jne 0x103edf10
lea eax, [ebx + 0x2b4]
lea esi, [edi + 0x2a1c]
test eax, eax
je 0x103edeeb
test esi, esi
je 0x103ededb
mov ecx, 0x30
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x3fc]
jmp 0x103edefb
push 0xc0
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
cmp byte [ebx + 0x12d], 0
je 0x103edf10
mov al, byte [ebx + 0x2bc]
mov byte [ebx + 0x2bd], al
mov eax, dword [ebx + 0x51c]
mov ecx, ebx
push dword [edi + 0x7f0]
shr eax, 2
and eax, 3
push eax
call fcn.103ef9a0
mov eax, dword [ebx + 8]
mov dword [ebp - 0x3dc], eax
mov ecx, dword [eax + 0x224]
test ecx, ecx
je 0x103edf7d
mov esi, dword [edi + 0x7c8]
mov dword [ebp - 0x3dc], eax
test esi, esi
je 0x103edf7d
movzx eax, byte [ebx + 0x12d]
xor edx, edx
push eax
mov eax, dword [ebx + 0x51c]
and al, 0xc
cmp al, 4
lea eax, [ebx + 0x174]
sete dl
push edx
push eax
push dword [esi + 0x18]
call fcn.103f1490
mov eax, dword [ebx + 8]
mov dword [ebp - 0x3dc], eax
cmp byte [ebx + 0x12d], 0
mov dword [ebp - 0x3e0], 0
je 0x103ee2b5
cmp dword [ebx + 0x134], 0
mov dword [ebp - 0x3e0], 1
je 0x103ee0a0
movzx ecx, word [ebx + 0x3da]
mov esi, dword [ebx + 0xa84c]
and ecx, 3
mov eax, dword [ebx + 0x790]
mov dword [ebp - 0x3d0], ecx
cmp ecx, 1
jne 0x103edfd6
inc eax
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
jmp 0x103edfd8
mov ecx, eax
mov eax, dword [ebx + 0x78c]
inc eax
cdq
sub eax, edx
sar eax, 1
imul eax, ecx
mov ecx, dword [ebx + 0x790]
imul ecx, dword [ebx + 0x78c]
lea ecx, [ecx + eax*2]
mov eax, dword [edi + 0x958]
imul ecx, dword [ebx + 0x150]
and eax, 0xc
jne 0x103ee01b
mov esi, dword [ebx + 0xa854]
inc esi
imul esi, ecx
add esi, dword [ebx + 0xa84c]
jmp 0x103ee054
cmp eax, 4
jne 0x103ee05e
mov eax, dword [ebx + 0xa850]
mov edx, dword [ebx + 0xa84c]
inc eax
mov esi, eax
mov dword [ebx + 0xa850], eax
imul esi, ecx
add esi, edx
cmp eax, dword [ebx + 0xa854]
jne 0x103ee05e
mov eax, dword [ebx + 0xa854]
inc eax
imul eax, ecx
add eax, edx
mov dword [ebx + 0xa84c], eax
mov dword [ebx + 0xa850], 0
mov ecx, dword [ebp - 0x3dc]
or eax, 0xffffffff
cmp dword [ebx + 0xa854], 0
cmova eax, esi
push eax
push dword [ebx + 0x150]
push dword [ebp - 0x3d0]
push dword [ebx + 0x790]
push dword [ebx + 0x78c]
push dword [ebx + 0x134]
push dword [ebp - 0x3d4]
call fcn.103e6560
jmp 0x103ee2b5
cmp dword [edi + 0x2adc], 0
jne 0x103ee2b5
mov eax, dword [edi + 0x7ec]
test eax, eax
js 0x103ee1f7
mov ecx, dword [edi + eax*4 + 0x7f4]
mov eax, dword [ebx + eax*4 + 0x4c]
mov dword [ebp - 0x3f4], ecx
mov dword [ebp - 0x3d0], eax
test ecx, ecx
je 0x103ee1f7
test eax, eax
je 0x103ee1f7
mov eax, dword [ebx + 0x20]
mov esi, dword [edi + 0x7dc]
mov ecx, dword [ebx]
add esi, 0xf
and esi, 0xfffffff0
mov eax, dword [ebx + eax*4 + 0x28]
mov dword [ebp - 0x3dc], eax
mov eax, dword [edi + 0x7e0]
add eax, 0xf
mov dword [ebp - 0x3e0], esi
and eax, 0xfffffff0
mov dword [ebp - 0x3e4], eax
mov eax, dword [ebp - 0x3d8]
mov eax, dword [eax]
shl eax, 4
mov dword [ebp - 0x3e8], eax
mov eax, dword [ebp - 0x404]
mov eax, dword [eax]
shl eax, 4
mov dword [ebp - 0x3f0], eax
call fcn.102eb970
mov ecx, dword [ebx]
test al, al
je 0x103ee19c
mov eax, dword [ebx + 0x3d8]
push 0
push 0
push 0
push 0
push 0
push 0
shr eax, 0x1e
push 0
and al, 1
movzx eax, al
push eax
push 1
push dword [ebp - 0x3dc]
call fcn.1033bb90
mov ecx, dword [ebx + 4]
push eax
mov eax, dword [ebx + 8]
push 0
sar esi, 1
push dword [eax + 0x428]
mov eax, dword [ebp - 0x3e4]
sar eax, 1
push eax
mov eax, dword [ebp - 0x3f4]
push esi
mov esi, dword [ebp - 0x3d0]
push esi
push eax
call fcn.10300e00
jmp 0x103ee1f7
mov eax, dword [ebp - 0x3f4]
mov esi, dword [ebp - 0x3d0]
push dword [ebp - 0x3dc]
mov edi, dword [eax]
mov esi, dword [esi]
call fcn.1033bb90
push eax
movzx eax, word [ebx + 0x3da]
push 1
mov ecx, dword [ebx + 4]
and eax, 3
push eax
mov eax, dword [ebx + 8]
push dword [eax + 0x428]
mov eax, dword [ebp - 0x3e4]
push dword [ebp - 0x3f0]
push dword [ebp - 0x3e8]
push eax
push dword [ebp - 0x3e0]
push esi
push edi
call fcn.103015e0
mov edi, dword [ebp - 0x3fc]
mov eax, dword [ebx]
mov dword [ebp - 0x3e0], 0
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
mov edx, dword [eax + 0x50]
mov ecx, dword [eax + 0x4c]
mov esi, dword [eax + 0x48]
mov eax, dword [eax + 0x44]
test al, 8
jne 0x103ee258
test eax, 0x400
jne 0x103ee258
test ecx, ecx
js 0x103ee258
test edx, 0x20000000
jne 0x103ee258
test eax, 0x8000000
jne 0x103ee258
test ecx, 0x100
jne 0x103ee258
test esi, 0x800000
jne 0x103ee258
mov eax, dword [ebp - 0x3d4]
mov byte [ebp - 0x3d0], 0
mov dword [ebp - 0x3d4], eax
jmp 0x103ee25f
mov byte [ebp - 0x3d0], 1
mov eax, dword [ebx + 0x3d8]
push 0
push 0
push 0
push 0
push 0
push 0
shr eax, 0x1e
push 0
and al, 1
mov ecx, dword [ebx + 4]
movzx eax, al
push eax
push dword [ebp - 0x3d0]
mov eax, dword [ebx + 8]
push 0
push 0
push dword [eax + 0x428]
mov eax, dword [edi + 0x7e0]
shr eax, 1
push eax
mov eax, dword [edi + 0x7dc]
shr eax, 1
push eax
push dword [ebp - 0x3d4]
push dword [edi + 0x7c8]
call fcn.10300e00
mov esi, dword [ebx + 0x1c]
push dword [ebx + 0xa700]
mov ecx, dword [ebx + 8]
and esi, 0xf
lea eax, [esi + 0x37]
lea eax, [ebx + eax*4]
push eax
call fcn.103e5830
test eax, eax
jne 0x103eec1f
mov ecx, dword [ebx]
add esi, 0x37
push eax
push eax
push eax
push eax
lea esi, [ebx + esi*4]
push eax
push dword [esi]
mov dword [ebp - 0x3d0], esi
call fcn.1033bbe0
mov ecx, eax
mov dword [ebp - 0x3d8], ecx
test ecx, ecx
je 0x103ee315
mov esi, dword [esi]
mov eax, dword [ebx + 0xa700]
mov edx, dword [esi + 0x74]
cmp eax, dword [edx + 0x24]
jbe 0x103ee32d
mov ecx, esi
call fcn.102ac650
pop edi
pop esi
mov eax, 0xa
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebx + 0xa6e8]
lea esi, [ebx + 0x374]
add eax, ecx
je 0x103ee362
test esi, esi
je 0x103ee352
mov ecx, 0x80
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x3fc]
jmp 0x103ee372
push 0x200
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov esi, dword [edi + 0x298c]
cmp esi, 1
jbe 0x103ee3a1
mov eax, dword [ebx + 0xa6f8]
mov edi, esi
add eax, dword [ebp - 0x3d8]
shl edi, 7
shl esi, 7
test edi, edi
je 0x103ee428
lea ecx, [ebx + 0x86e8]
jmp 0x103ee3cc
mov eax, dword [ebp - 0x3d4]
lea ecx, [ebx + 0x86e8]
mov dword [ebp - 0x3d4], eax
mov edi, 0x80
mov eax, dword [ebx + 0xa6f8]
mov esi, edi
add eax, dword [ebp - 0x3d8]
mov dword [ebp - 0x3ec], ecx
test eax, eax
jne 0x103ee3dd
call fcn.1043a2d6
mov dword [eax], 0x16
jmp 0x103ee423
test ecx, ecx
je 0x103ee3f2
cmp esi, edi
jb 0x103ee3f2
push edi
push ecx
push eax
call fcn.10425d60
add esp, 0xc
jmp 0x103ee428
push esi
push 0
push eax
call fcn.10425c00
add esp, 0xc
cmp dword [ebp - 0x3ec], 0
jne 0x103ee414
call fcn.1043a2d6
mov dword [eax], 0x16
jmp 0x103ee423
cmp esi, edi
jae 0x103ee428
call fcn.1043a2d6
mov dword [eax], 0x22
call fcn.1043a1d8
mov eax, dword [ebx + 0xa6ec]
lea edx, [ebx + 0x174]
add eax, dword [ebp - 0x3d8]
je 0x103ee45d
test edx, edx
je 0x103ee44d
mov ecx, 0x30
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x103ee46d
push 0xc0
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov eax, dword [ebx + 0xa6f0]
lea esi, [ebx + 0x234]
add eax, dword [ebp - 0x3d8]
je 0x103ee4a0
test esi, esi
je 0x103ee490
mov ecx, 0x20
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x103ee4b0
push 0x80
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov eax, dword [ebx + 0xa6f4]
lea esi, [ebx + 0x2b4]
add eax, dword [ebp - 0x3d8]
je 0x103ee4e3
test esi, esi
je 0x103ee4d3
mov ecx, 0x30
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x103ee4f3
push 0xc0
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov esi, dword [ebp - 0x3d0]
mov ecx, dword [esi]
call fcn.102ac650
mov edi, dword [ebp - 0x3fc]
lea eax, [ebx + 0x12c]
mov dword [ebp - 0x3f4], eax
cmp dword [edi + 0x7e4], 0
je 0x103ee520
mov byte [eax], 1
jmp 0x103ee528
mov cl, byte [eax]
mov byte [eax], cl
test cl, cl
je 0x103ee565
lea edi, [ebx + 0xd0]
mov dword [ebp - 0x3ec], 2
mov edx, dword [edi]
mov ecx, dword [ebx + 4]
push 0
mov eax, dword [edx + 0x74]
mov esi, dword [ecx]
push dword [eax + 0x24]
push 0
push edx
call dword [esi + 0x30]
sub dword [ebp - 0x3ec], 1
lea edi, [edi + 4]
jne 0x103ee538
mov edi, dword [ebp - 0x3fc]
mov esi, dword [ebp - 0x3d0]
push 0x58
lea eax, [ebp - 0x378]
mov dword [ebp - 0x390], 0
xorps xmm0, xmm0
push 0
push eax
movq qword [ebp - 0x398], xmm0
call fcn.10425c00
push 0x60
xorps xmm0, xmm0
lea eax, [ebp - 0x2dc]
push 0
push eax
movups xmmword [ebp - 0x31c], xmm0
movq qword [ebp - 0x30c], xmm0
call fcn.10425c00
push 0x210
lea eax, [ebp - 0x25c]
push 0
push eax
call fcn.10425c00
mov eax, dword [ebx + 0x51c]
add esp, 0x24
mov edx, dword [ebp - 0x3e0]
xorps xmm0, xmm0
shr eax, 2
and eax, 3
movq qword [ebp - 0x44], xmm0
mov dword [ebp - 0x3c4], eax
movzx eax, byte [ebx + 0x11c]
mov dword [ebp - 0x3c0], eax
xor eax, eax
cmp dword [edi + 0x7cc], eax
mov dword [ebp - 0x3c], 0
setne al
movq qword [ebp - 0x10], xmm0
cmp dword [edi + 0x2adc], 0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 0x1c]
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x3cc], 1
movups xmmword [ebp - 0x20], xmm0
mov dword [ebp - 0x3c8], 3
mov dword [ebp - 0x3bc], 0
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x3b8], eax
je 0x103ee656
mov eax, dword [edi + 0x7c8]
mov eax, dword [eax + 8]
jmp 0x103ee65e
mov eax, dword [ebp - 0x3d4]
mov eax, dword [eax]
mov dword [ebp - 0x3b4], eax
mov eax, dword [esi]
mov dword [ebp - 0x3b0], eax
mov eax, dword [ebx]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
test dword [eax + 0x44], 0x8000000
je 0x103ee693
push dword [ebp - 0x408]
mov ecx, dword [ebx + 4]
call fcn.102fdd00
mov edx, dword [ebp - 0x3e0]
jmp 0x103ee699
mov eax, dword [ebx + 0xd8]
mov ecx, dword [ebx + 0x51c]
mov dword [ebp - 0x3ac], eax
and ecx, 0xc
movzx eax, byte [ebx + 0x12f]
mov dword [ebp - 0x34], eax
movzx eax, byte [ebx + 0x130]
mov dword [ebp - 0x3a8], 0
mov dword [ebp - 0x3a4], 0
mov dword [ebp - 0x3a0], 0
mov dword [ebp - 0x39c], 0
mov dword [ebp - 8], eax
cmp ecx, 8
je 0x103ee722
cmp ecx, 0xc
je 0x103ee722
mov eax, dword [edi + 0x7d4]
test eax, eax
je 0x103ee701
cmp byte [ebx + 0x12e], 0
je 0x103ee70b
mov eax, dword [ebx + 0x18]
mov eax, dword [ebx + eax*4 + 0xd0]
mov dword [ebp - 0x394], eax
mov eax, 0x35
sub eax, dword [ebx + 0x18]
mov eax, dword [ebx + eax*4]
mov dword [ebp - 0x390], eax
mov dword [ebp - 0x38c], 0
test edx, edx
je 0x103ee756
cmp byte [ebx + 0x12d], 0
mov eax, dword [edi]
je 0x103ee741
mov eax, dword [ebx + eax*4 + 0x4c]
jmp 0x103ee748
mov eax, dword [edi + eax*4 + 0x7f4]
test eax, eax
je 0x103ee756
mov eax, dword [eax]
mov dword [ebp - 0x388], eax
jmp 0x103ee760
mov dword [ebp - 0x388], 0
mov eax, dword [edi + 0x7d8]
mov dword [ebp - 0x384], eax
mov eax, dword [ebx + 0x48]
mov dword [ebp - 0x380], eax
mov dword [ebp - 0x37c], eax
mov dword [ebp - 0x320], 0x100
cmp ecx, 8
je 0x103ee7a9
cmp ecx, 0xc
je 0x103ee7a9
mov eax, dword [ebx + 0x86f4]
lea edx, [ebx + 0x86f4]
shr eax, 1
and eax, 0x1f
inc eax
mov dword [ebp - 0x304], eax
jmp 0x103ee7c3
mov dword [ebp - 0x304], 0
lea edx, [ebx + 0x86f4]
cmp ecx, 8
je 0x103ee7d2
cmp ecx, 0xc
je 0x103ee7d2
test ecx, ecx
je 0x103ee7d2
mov eax, dword [edx]
shr eax, 6
and eax, 0x1f
inc eax
jmp 0x103ee7d4
xor eax, eax
mov dword [ebp - 0x300], eax
lea edx, [edi + 4]
movsx eax, byte [ebx + 0x43c]
xor ecx, ecx
mov dword [ebp - 0x2fc], eax
movsx eax, byte [ebx + 0x43d]
mov dword [ebp - 0x2f8], eax
movsx eax, byte [ebx + 0x43e]
mov dword [ebp - 0x2f4], eax
movsx eax, byte [ebx + 0x43f]
mov dword [ebp - 0x2f0], eax
movsx eax, byte [ebx + 0x440]
mov dword [ebp - 0x2ec], eax
movsx eax, byte [ebx + 0x441]
mov dword [ebp - 0x2e8], eax
movsx eax, byte [ebx + 0x442]
mov dword [ebp - 0x2e4], eax
movsx eax, byte [ebx + 0x443]
mov dword [ebp - 0x2e0], eax
movsx eax, byte [ebx + 0x444]
mov dword [ebp - 0x27c], eax
movsx eax, byte [ebx + 0x445]
mov dword [ebp - 0x278], eax
movsx eax, byte [ebx + 0x446]
mov dword [ebp - 0x274], eax
movsx eax, byte [ebx + 0x447]
mov dword [ebp - 0x270], eax
movsx eax, byte [ebx + 0x448]
mov dword [ebp - 0x26c], eax
movsx eax, byte [ebx + 0x449]
mov dword [ebp - 0x268], eax
movsx eax, byte [ebx + 0x44a]
mov dword [ebp - 0x264], eax
movsx eax, byte [ebx + 0x44b]
mov dword [ebp - 0x260], eax
nop
mov eax, dword [edx]
cmp eax, 0x20
ja 0x103ee8de
cmp byte [ebx + 0x12d], 0
je 0x103ee8c6
mov eax, dword [ebx + eax*4 + 0x4c]
jmp 0x103ee8cd
mov eax, dword [edi + eax*4 + 0x7f4]
test eax, eax
je 0x103ee8d5
mov eax, dword [eax]
jmp 0x103ee8d7
xor eax, eax
mov dword [ebp + ecx*4 - 0x13c], eax
inc ecx
add edx, 4
cmp ecx, 0x10
jl 0x103ee8b0
cmp dword [edi + 0x7e8], 0
mov eax, dword [edi + 0x7cc]
mov dword [ebp - 0x378], eax
je 0x103ee909
test byte [edi + 0x958], 3
jne 0x103eea33
cmp dword [edi + 0x2adc], 0
mov ecx, dword [ebx]
je 0x103ee94b
mov eax, dword [edi + 0x7c8]
push 0
push dword [eax + 8]
call fcn.1033bbc0
mov ecx, dword [ebp - 0xa8]
push 0
mov dword [ebp + ecx*4 - 0xa4], eax
mov eax, dword [edi + 0x7c8]
inc dword [ebp - 0xa8]
mov ecx, dword [ebx]
push dword [eax + 8]
call fcn.1033bbc0
jmp 0x103ee98c
mov esi, dword [ebp - 0x3d4]
push esi
call fcn.1033bb90
mov ecx, dword [ebp - 0xa8]
mov dword [ebp + ecx*4 - 0xa4], eax
inc dword [ebp - 0xa8]
cmp byte [ebx + 0x12d], 0
je 0x103ee996
test byte [edi + 0x958], 0x10
je 0x103ee984
mov dword [edi + 0x2ae4], esi
jmp 0x103ee996
mov ecx, dword [ebx]
push esi
call fcn.1033bb90
mov ecx, dword [ebp - 0x7c]
mov dword [ebp + ecx*4 - 0x78], eax
inc dword [ebp - 0x7c]
cmp byte [ebx + 0x138], 0
je 0x103eea33
cmp byte [edi + 0x2ae0], 0
je 0x103ee9ec
mov eax, dword [edi + 0x7cc]
test eax, eax
je 0x103ee9ec
mov ecx, dword [ebx]
push 0
push eax
call fcn.1033bbc0
mov ecx, dword [ebp - 0xa8]
push 0
push dword [edi + 0x7cc]
mov dword [ebp + ecx*4 - 0xa4], eax
mov ecx, dword [ebx]
inc dword [ebp - 0xa8]
call fcn.1033bbc0
mov ecx, dword [ebp - 0x7c]
mov dword [ebp + ecx*4 - 0x78], eax
inc dword [ebp - 0x7c]
cmp byte [ebx + 0x138], 0
je 0x103eea33
cmp byte [ebx + 0x12f], 0
je 0x103eea33
mov ecx, dword [ebx]
push 0
push dword [ebx + 0x48]
call fcn.1033bbc0
mov ecx, dword [ebp - 0xa8]
push 0
push dword [ebx + 0x48]
mov dword [ebp + ecx*4 - 0xa4], eax
mov ecx, dword [ebx]
inc dword [ebp - 0xa8]
call fcn.1033bbc0
mov ecx, dword [ebp - 0x7c]
mov dword [ebp + ecx*4 - 0x78], eax
inc dword [ebp - 0x7c]
cmp byte [ebp + 0x18], 0
mov eax, dword [edi + 0x2ae8]
mov dword [ebp - 0x338], eax
mov eax, dword [edi + 0x2aec]
mov dword [ebp - 0x330], eax
je 0x103eeb7a
mov eax, dword [ebp - 0x400]
mov ecx, dword [ebp - 0x384]
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x390]
mov dword [eax + 0x90], esi
mov dword [eax + 0x80], ecx
mov dword [eax + 0x94], edx
mov eax, dword [edi]
mov edi, dword [ebp - 0x400]
mov dword [edi + 0xa4], eax
mov eax, 1
sub eax, dword [ebx + 0x18]
mov dword [edi + 0xa8], eax
test ecx, ecx
je 0x103eeb48
mov eax, dword [ecx + 0x74]
mov edi, dword [ebx + 4]
push 0
push 0
mov esi, dword [eax + 0x24]
mov eax, dword [edi]
push ecx
mov ecx, dword [ebx]
mov dword [ebp - 0x408], eax
call fcn.1033bbc0
mov ecx, dword [ebx]
push eax
mov eax, dword [ebp - 0x400]
push 0
push dword [eax + 4]
call fcn.1033bbc0
push eax
mov eax, dword [ebp - 0x400]
mov ecx, edi
push 0
push esi
push 1
push esi
push 0
push esi
push 1
push esi
push dword [eax + 4]
mov eax, dword [ebp - 0x408]
push dword [ebp - 0x384]
call dword [eax + 0x44]
mov edi, dword [ebp - 0x400]
mov ecx, dword [ebx]
push 0
mov eax, dword [edi + 4]
push eax
mov dword [ebp - 0x384], eax
call fcn.1033bbc0
mov ecx, dword [ebp - 0xa8]
push 0
push dword [edi + 4]
mov dword [ebp + ecx*4 - 0xa4], eax
mov ecx, dword [ebx]
inc dword [ebp - 0xa8]
call fcn.1033bbc0
mov ecx, dword [ebp - 0x7c]
mov dword [ebp + ecx*4 - 0x78], eax
inc dword [ebp - 0x7c]
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x390]
test edx, edx
je 0x103eeb58
mov eax, dword [edi + 0x8c]
mov dword [ebp - 0x390], eax
test esi, esi
je 0x103eeb7a
mov eax, dword [edi + 0x88]
test eax, eax
je 0x103eeb70
mov eax, dword [eax]
mov dword [ebp - 0x388], eax
jmp 0x103eeb7a
mov dword [ebp - 0x388], 0
mov ecx, dword [ebx + 4]
lea eax, [ebp - 0x3cc]
push 0
push 1
push eax
call fcn.10300220
test eax, eax
jne 0x103eec1f
mov ecx, dword [ebp - 0x40c]
mov eax, dword [ebp - 0x390]
mov dword [ecx], eax
mov eax, dword [ebx + 0x51c]
inc dword [ebx + 0x1c]
and eax, 0xc
je 0x103eebb6
cmp eax, 4
jne 0x103eebba
xor dword [ebx + 0x18], 1
cmp byte [ebp + 0x18], 0
mov eax, dword [ebp - 0x3f4]
mov byte [eax], 0
je 0x103eec05
mov ecx, dword [ebp - 0x400]
mov eax, dword [ebx + 0x20]
mov dword [ecx + 0xb4], eax
mov eax, dword [ebx + 0x1c]
mov dword [ecx + 0xb8], eax
mov eax, dword [ebx + 0x18]
mov dword [ecx + 0xbc], eax
mov eax, dword [ebx + 0xa7bc]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0xa7c0]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx + 0xa7c4]
mov dword [ebx + 0x18], eax
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x18
mov eax, 8
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x18