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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
mov esi, dword [edi + 0x50]
test esi, esi
je 0x1038b611
cmp dword [edi + 0x48], 0x7f70
jne 0x1038b611
push esi
mov byte [ebx + 0x9e81], 1
call fcn.1038a9e0
cmp dword [ebx + 0x908], 1
mov ecx, dword [ebx + 0x478]
mov byte [ebx + 0x93a], 1
jl 0x1038b533
mov eax, dword [ebx + 0x47c]
add eax, ecx
jmp 0x1038b535
mov eax, ecx
mov dword [ebx + 0x90c], eax
mov eax, dword [ebx + 0x448]
cmp eax, 0x80
je 0x1038b556
cmp eax, 0x76
je 0x1038b556
mov eax, 1
xor cl, cl
jmp 0x1038b55d
mov eax, 2
mov cl, 1
mov byte [ebx + 0x919], cl
mov dword [ebx + 0x64e0], eax
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x1038b576
mov eax, dword [ebx + 0x440]
mov dword [ebx + 0x2f0], eax
mov ecx, dword [esi + 0x20]
test ecx, ecx
jne 0x1038b589
mov ecx, dword [ebx + 0x444]
add eax, 0xf
mov dword [ebx + 0x2f4], ecx
shr eax, 4
mov dword [ebx + 0x2f8], eax
lea eax, [ecx + 0xf]
shr eax, 4
cmp dword [ebx + 0x8dc], 0
mov dword [ebx + 0x2fc], eax
je 0x1038b5ba
inc eax
and eax, 0xfffffffe
mov dword [ebx + 0x2fc], eax
cmp dword [esi + 0x1ae4], 0
je 0x1038b5db
mov al, byte [edi + 0x44]
and al, 1
mov byte [ebx + 0x939], al
mov eax, dword [edi + 0x44]
shr eax, 1
and al, 1
mov byte [ebx + 0x940], al
mov eax, dword [edi + 0x44]
shr eax, 0xa
and al, 1
mov byte [ebx + 0x9e7c], al
mov eax, dword [edi + 0x44]
shr eax, 0xc
and al, 1
mov byte [ebx + 0x9e7d], al
xor eax, eax
cmp dword [esi + 0x44], 1
sete al
mov dword [ebx + 0x3c18], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, dword [edi + 0x54]
xor eax, eax
mov dword [ebp - 0x18], esi
mov edx, 2
mov ecx, dword [esi + 0x20]
cmp ecx, 1
je 0x1038b62b
cmp ecx, edx
cmove eax, edx
mov dword [ebx + 0x8dc], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x24]
cmp eax, 1
jne 0x1038b65c
and dword [ebx + 0x4a4], 0xffffbfff
and dword [ebx + 0x4b0], 0xeffbfeff
and dword [ebx + 0x4b8], 0xffefffff
jmp 0x1038b66f
jle 0x1038b66f
add eax, eax
xor eax, dword [ebx + 0x4a4]
and eax, 2
xor dword [ebx + 0x4a4], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0xbac]
mov dword [ebx + 0x314], eax
cmp eax, 1
jne 0x1038b689
mov dword [ebx + 0x334], eax
mov edx, dword [edi + 0x24]
mov dword [ebx + 0x440], edx
mov ecx, dword [edi + 0x28]
mov dword [ebx + 0x444], ecx
mov eax, dword [edi + 0x58]
test eax, eax
cmovne edx, eax
mov dword [ebx + 0x2f0], edx
mov eax, dword [edi + 0x5c]
test eax, eax
cmovne ecx, eax
lea eax, [edx + 0xf]
shr eax, 4
mov dword [ebx + 0x2f8], eax
mov dword [ebx + 0x2f4], ecx
lea eax, [ecx + 0xf]
shr eax, 4
lea ecx, [edi + 0x60]
mov dword [ebx + 0x2fc], eax
mov eax, dword [edi + 0x44]
shr eax, 0xd
and al, 1
mov byte [ebx + 0x34e], al
mov eax, dword [edi + 0x44]
shr eax, 2
and al, 1
mov byte [ebx + 0x9b4], al
lea eax, [ebx + 0x988]
test eax, eax
je 0x1038b716
test ecx, ecx
je 0x1038b70c
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm0
jmp 0x1038b726
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
cmp dword [ebx + 0x8dc], 0
je 0x1038b73f
mov eax, dword [ebx + 0x2fc]
inc eax
and eax, 0xfffffffe
mov dword [ebx + 0x2fc], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0xc4]
mov dword [ebx + 0x470], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0xc0]
mov dword [ebx + 0xa10], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x2c]
cmp eax, 0x20
ja case.0x1038b773.1
movzx eax, byte [eax + 0x1038ca20]
jmp dword [eax*4 + 0x1038ca04]
mov dword [ebx + 0x86c], 0
lea ecx, [ebx + 0x9b8]
mov eax, dword [esi + 0xa8]
shr eax, 0xf
and eax, 1
mov dword [ebp - 8], ecx
mov dword [ecx], eax
mov eax, 8
mov ecx, dword [ebx + 0xf4c]
sub eax, ecx
mov dword [ebx + 0x870], 2
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x54]
add edx, edx
mov eax, dword [eax + 0x30]
cmp eax, edx
jge 0x1038b7ce
lea eax, [ecx - 8]
lea eax, [eax + eax*2]
lea eax, [eax*2 + 0x1c]
mov dword [ebx + 0x874], eax
lea ecx, [ecx + ecx*2]
mov eax, dword [edi + 0x54]
lea ecx, [ecx - 0x18]
mov eax, dword [eax + 0x34]
cmp eax, edx
jge 0x1038b7eb
lea eax, [ecx*2 + 0x1f]
mov dword [ebx + 0x878], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x38]
cmp eax, edx
jge 0x1038b913
lea eax, [ecx*2 + 0x19]
jmp 0x1038b913
lea edx, [ebx + 0x9b8]
mov dword [ebx + 0x86c], 0x12
mov dword [ebp - 8], edx
mov ecx, edx
jmp 0x1038b87a
lea edx, [ebx + 0x9b8]
mov dword [ebx + 0x86c], 0x212
mov dword [ebp - 8], edx
mov ecx, edx
jmp 0x1038b87a
lea edx, [ebx + 0x9b8]
mov dword [ebx + 0x86c], 0x112
mov dword [ebp - 8], edx
mov ecx, edx
jmp 0x1038b87a
lea edx, [ebx + 0x9b8]
mov dword [ebx + 0x86c], 0x311
mov dword [ebp - 8], edx
mov ecx, edx
jmp 0x1038b87a
lea ecx, [ebx + 0x9b8]
mov dword [ebx + 0x86c], 0x11
mov dword [ebp - 8], ecx
mov eax, dword [esi + 0xa8]
shr eax, 0xf
and eax, 1
mov dword [ebx + 0x870], 2
mov dword [ecx], eax
mov eax, dword [edi + 0x54]
test byte [eax + 0x4c], 4
je 0x1038b8fa
mov ecx, dword [ebx + 0xf4c]
mov eax, 8
sub eax, ecx
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x54]
add edx, edx
mov eax, dword [eax + 0x68]
cmp eax, edx
jge 0x1038b8c4
lea eax, [ecx - 8]
lea eax, [eax + eax*2]
lea eax, [eax*2 + 0x1c]
mov dword [ebx + 0x874], eax
lea ecx, [ecx + ecx*2]
mov eax, dword [edi + 0x54]
lea ecx, [ecx - 0x18]
mov eax, dword [eax + 0x6c]
cmp eax, edx
jge 0x1038b8e1
lea eax, [ecx*2 + 0x1f]
mov dword [ebx + 0x878], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x70]
cmp eax, edx
jge 0x1038b913
lea eax, [ecx*2 + 0x19]
jmp 0x1038b913
mov dword [ebx + 0x874], 0x1c
mov eax, 0x19
mov dword [ebx + 0x878], 0x1f
mov ecx, ebx
mov edx, 0x87c
mov dword [edx + ecx], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x40]
mov dword [ebx + 0x8b4], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x3c]
mov dword [ebx + 0x8b8], eax
mov eax, dword [edi + 0x54]
movzx ecx, byte [eax + 0x81]
movzx eax, byte [eax + 0x80]
and ecx, 0xc0
or ecx, eax
mov dword [ebx + 0x8bc], ecx
mov eax, dword [edi + 0x54]
mov al, byte [eax + 0x84]
test al, al
je 0x1038b96a
movzx eax, al
mov dword [ebx + 0x8c0], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x1038b97a
mov dword [ebx + 0x8a0], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x1038b98a
mov dword [ebx + 0x8a4], eax
mov ecx, dword [edi + 0x80]
mov dword [ebx + 0x374], ecx
cmp ecx, 4
jbe 0x1038b9b5
push 0x10461c80
mov ecx, ebx
call fcn.103e8250
mov eax, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x8c]
mov dword [ebx + 0x9ed0], eax
cmp eax, 2
jbe 0x1038b9e3
push 0x10461ca0
mov ecx, ebx
call fcn.103e8250
mov eax, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi + 0x54]
mov ecx, 0x1e
mov eax, dword [eax + 0x14]
test eax, eax
cmovne ecx, eax
mov dword [ebx + 0x8a8], ecx
mov eax, dword [edi + 0x54]
mov dword [ebp - 0xc], ecx
mov ecx, dword [eax + 0x20]
xor eax, eax
cmp ecx, 1
je 0x1038ba14
cmp ecx, 2
mov ecx, 2
cmove eax, ecx
mov dword [ebx + 0x8dc], eax
movups xmm0, xmmword [edi + 0x14]
mov dword [ebp - 0x14], eax
mov eax, 0
movups xmmword [ebx + 0x2e0], xmm0
mov ecx, dword [edi + 0x44]
test ecx, 0x20
setne al
mov dword [ebx + 0x488], eax
mov dword [ebx + 0x338], eax
test ecx, 0x20
je 0x1038ba57
mov dword [ebx + 0x9eb4], 8
mov ecx, dword [edi + 0x44]
mov eax, dword [ebx + 4]
shr ecx, 0xf
and cl, 1
mov byte [ebx + 0x34f], cl
mov dl, cl
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
test dword [eax + 0x48], 0x800000
lea eax, [edi + 0x8c]
je 0x1038ba95
test dl, dl
je 0x1038ba8d
cmp dword [eax], 1
jne 0x1038ba8d
mov dl, 1
jmp 0x1038ba8f
xor dl, dl
mov byte [ebx + 0xf45], dl
test cl, cl
je 0x1038bab8
cmp byte [ebx + 0xf45], 0
je 0x1038baa9
mov ecx, 1
jmp 0x1038baba
xor ecx, ecx
cmp dword [eax], 2
mov eax, 2
cmove ecx, eax
jmp 0x1038baba
xor ecx, ecx
mov dword [ebx + 0x354], ecx
lea edx, [edi + 0x38]
mov eax, dword [edi + 0x44]
shr eax, 0xe
and al, 1
mov byte [ebx + 0x350], al
mov eax, dword [edi + 0x88]
mov dword [ebx + 0x358], eax
mov eax, dword [edi + 0x54]
mov al, byte [eax + 0x4e]
and al, 1
mov byte [ebx + 0x35c], al
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x4c]
shr eax, 5
and al, 1
mov byte [ebx + 0x35d], al
mov eax, dword [edi + 0x2c]
mov dword [ebx + 0x8f0], eax
mov eax, dword [edi + 0x30]
mov dword [ebx + 0x8f4], eax
mov ecx, dword [edi + 0x34]
test ecx, ecx
je 0x1038bb4c
mov eax, dword [edx]
mov dword [ebp - 0x1c], edx
test eax, eax
je 0x1038bb4c
movd xmm1, ecx
movd xmm0, eax
cvtdq2pd xmm1, xmm1
shr ecx, 0x1f
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm1, qword [ecx*8 + 0x1122e340]
addsd xmm0, qword [eax*8 + 0x1122e340]
divsd xmm1, xmm0
jmp 0x1038bb57
movsd xmm1, qword [0x10b33458]
mov dword [ebp - 0x1c], edx
movsd qword [ebx + 0x8f8], xmm1
cmp dword [edi + 0x34], 0
jbe 0x1038bb7a
cmp dword [edx], 0
jbe 0x1038bb7a
mov eax, dword [esi + 0xa8]
shr eax, 0xd
not eax
and eax, 1
jmp 0x1038bb7c
xor eax, eax
mov byte [ebx + 0x900], al
mov ecx, dword [esi + 0xb0]
test ecx, ecx
jne 0x1038bb9c
mov eax, dword [edi + 0x54]
mov ecx, 0x1e
mov eax, dword [eax + 0x14]
test eax, eax
cmovne ecx, eax
mov dword [ebx + 0x904], ecx
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x10], 0
mov eax, dword [eax + 0x18]
test eax, eax
lea edx, [eax - 1]
cmovle edx, dword [ebp - 0x10]
mov dword [ebx + 0x908], edx
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x10], edx
mov eax, dword [eax + 0x4c]
shr eax, 9
and al, 1
mov byte [ebx + 0x901], al
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x4c]
shr eax, 0xb
and al, 1
mov byte [ebx + 0x902], al
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x4c]
shr eax, 5
and al, 1
mov dword [ebx + 0x26c], 1
cmp byte [ebx + 0x35d], 0
mov byte [ebx + 0x8c4], al
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x274], eax
mov dword [ebx + 0x270], ecx
mov dword [ebx + 0x278], edx
je 0x1038bc27
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x98]
jmp 0x1038bc29
xor eax, eax
mov dword [ebx + 0x280], eax
mov eax, dword [edi + 0x54]
cmp dword [eax + 0x98], 0
je 0x1038bc55
push 0x10461cc0
mov ecx, ebx
call fcn.103e8250
mov eax, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx + 0x86c], 0xff
jle 0x1038bca7
mov ecx, dword [ebx + 4]
call fcn.1038eec0
test al, al
je 0x1038bca7
cmp dword [ebp - 0x14], 2
je 0x1038bca7
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x1c]
test byte [eax + 0xc3a4], 4
jne 0x1038bca7
cmp dword [esi + 0x668], 1
ja 0x1038bca7
cmp dword [ebx + 0x440], 0x100
jl 0x1038bca7
cmp dword [ebx + 0x444], 0x80
mov byte [ebp - 0x14], 1
jge 0x1038bcab
mov byte [ebp - 0x14], 0
movups xmm0, xmmword [ebx + 0x2e0]
lea eax, [ebx + 0x9c0]
mov ecx, ebx
mov dword [eax], 0
lea esi, [ebx + 0x2e0]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebx + 0x444]
push dword [ebx + 0x440]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.1038f620
cmp dword [ebx + 0x440], 0x100
mov dword [ebx + 0x3c34], eax
jle 0x1038bd0c
cmp dword [ebx + 0x444], 0x80
jle 0x1038bd0c
mov eax, dword [ebx + 0x9c0]
jmp 0x1038bd18
mov dword [ebx + 0x9c0], 0
xor eax, eax
cmp byte [ebx + 0x9e80], 0
jne 0x1038bd29
test eax, eax
je 0x1038bd36
push 1
jmp 0x1038bd2e
test eax, eax
jne 0x1038bd36
push eax
mov ecx, dword [ebx + 8]
call fcn.102933d0
mov ecx, dword [ebx + 0x9c0]
test ecx, ecx
setne al
neg ecx
mov byte [ebx + 0x9e80], al
mov eax, dword [ebx + 0x534]
sbb ecx, ecx
and ecx, 0x200
and eax, 0xfffffdff
or ecx, eax
mov dword [ebx + 0x534], ecx
mov ecx, ebx
mov eax, dword [edi + 0x40]
mov dword [ebx + 0x310], eax
call fcn.1038ef20
test al, al
jne 0x1038bd9e
mov eax, dword [edi + 0x54]
cmp byte [eax + 0x84], 0
je 0x1038bd9e
push 0x10461cf0
mov ecx, ebx
call fcn.103e8250
mov eax, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi + 0x54]
test dword [eax + 0x4c], 0x100
je 0x1038bdba
mov ecx, dword [ebx + 4]
call fcn.1038eec0
test al, al
je 0x1038bdba
mov dl, 1
jmp 0x1038bdbc
xor dl, dl
mov byte [ebx + 0x34c], dl
mov eax, dword [edi + 0x54]
mov ecx, dword [eax + 0x4c]
shr ecx, 3
and ecx, 0xffffff01
mov dword [ebp - 0x14], ecx
mov byte [ebx + 0x34d], cl
test dl, dl
jne 0x1038bdf5
test cl, cl
je 0x1038bdf1
mov ecx, dword [ebx + 4]
call fcn.1038eec0
mov ecx, dword [ebp - 0x14]
test al, al
jne 0x1038bdf5
xor edx, edx
jmp 0x1038bdfa
mov edx, 1
mov dword [ebx + 0x344], edx
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x10], edx
mov eax, dword [eax + 0x4c]
shr eax, 0xc
and eax, 0xf
jne 0x1038be18
mov eax, 8
jmp 0x1038be26
cmp eax, 1
mov dword [ebp - 0x14], 1
cmovb eax, dword [ebp - 0x14]
cmp dword [ebx + 0x280], 0
mov dword [ebx + 0x328], eax
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x88]
mov dword [ebx + 0x348], eax
jne 0x1038be55
cmp edx, 1
je 0x1038be55
mov eax, dword [edi + 0x54]
cmp dword [eax + 0x88], 0
je 0x1038be57
mov cl, 3
mov byte [ebx + 0xa01], cl
mov edx, 0x10b339a8
mov eax, dword [edi + 0x54]
mov ecx, esi
mov dword [ebp - 0x14], 0xc
cmp dword [eax + 0x88], 1
sete al
mov byte [ebx + 0xf30], al
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1038be94
add ecx, 4
add edx, 4
sub dword [ebp - 0x14], 4
jae 0x1038be80
jmp 0x1038bebc
mov ecx, 0x10b339b8
mov edx, 0xc
nop
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x1038beb3
add esi, 4
add ecx, 4
sub edx, 4
jae 0x1038bea0
jmp 0x1038bebc
cmp dword [ebx + 0x374], 4
jne 0x1038bedc
cmp dword [ebp - 0x10], 0
je 0x1038bedc
push 0x10461d40
mov ecx, ebx
call fcn.103e8250
mov eax, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [edi + 0x54]
test byte [edx + 0x4c], 2
je 0x1038bf68
mov eax, 8
mov edi, 0x33
sub eax, dword [ebx + 0xf4c]
mov esi, edi
lea ecx, [eax + eax*2]
add ecx, ecx
cmp ecx, dword [edx + 0x5c]
cmovl esi, dword [edx + 0x5c]
mov edx, dword [ebp + 8]
mov dword [ebx + 0x880], esi
mov eax, dword [edx + 0x54]
cmp ecx, dword [eax + 0x60]
cmovl edi, dword [eax + 0x60]
mov dword [ebx + 0x884], edi
mov eax, dword [edx + 0x54]
mov edx, esi
cmp ecx, dword [eax + 0x64]
cmovl edx, dword [eax + 0x64]
mov eax, dword [ebx + 0x88c]
cmp eax, esi
mov dword [ebx + 0x888], edx
cmovl esi, eax
mov eax, dword [ebx + 0x890]
cmp eax, edi
mov dword [ebx + 0x88c], esi
cmovl edi, eax
mov eax, dword [ebx + 0x894]
cmp eax, edx
mov dword [ebx + 0x890], edi
mov edi, dword [ebp + 8]
cmovl edx, eax
mov dword [ebx + 0x894], edx
mov esi, dword [edi + 0x54]
test byte [esi + 0x4c], 1
je 0x1038bfd4
mov esi, dword [esi + 0x50]
mov ecx, dword [ebx + 0x880]
cmp esi, ecx
mov dword [ebx + 0x88c], esi
mov eax, dword [edi + 0x54]
mov edx, dword [eax + 0x54]
mov dword [ebx + 0x890], edx
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0x58]
mov dword [ebp - 0x14], eax
mov dword [ebx + 0x894], eax
mov eax, esi
cmovle eax, ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebx + 0x880], eax
mov eax, dword [ebx + 0x884]
cmp edx, eax
cmovle edx, eax
mov eax, dword [ebx + 0x888]
cmp ecx, eax
mov dword [ebx + 0x884], edx
cmovg eax, ecx
cmp esi, ecx
mov dword [ebx + 0x888], eax
cmovg ecx, esi
jmp 0x1038bfd9
mov ecx, 0x1c
mov dword [ebx + 0x9ec8], ecx
sub esp, 0x10
mov ecx, dword [edi + 0x54]
mov eax, esp
movups xmm0, xmmword [ecx + 4]
movups xmmword [eax], xmm0
call fcn.103886b0
mov esi, dword [ebp - 0x18]
mov edx, eax
mov dword [ebx + 0x448], edx
mov dword [ebp - 0x14], edx
mov ecx, dword [esi + 0xac]
mov dword [ebx + 0x44c], ecx
mov ecx, dword [ebx + 0x56c]
or ecx, 0x8000000
mov dword [ebx + 0x474], 0
mov dword [ebx + 0x56c], ecx
mov dword [ebx + 0x49c], 0
cmp edx, 0x42
je 0x1038c050
or ecx, 0x4000000
and ecx, 0xfeffffff
or ecx, 0x2000000
mov dword [ebx + 0x56c], ecx
cmp dword [ebx + 0x3c34], 0
ja 0x1038c068
mov ecx, dword [ebx + 4]
call fcn.102eb9c0
test al, al
je 0x1038c08a
mov edx, dword [ebp - 0x14]
cmp edx, 0x42
je 0x1038c08a
cmp edx, 0x58
je 0x1038c08a
xor eax, eax
mov dword [ebx + 0x474], 1
cmp edx, 0x4d
setne al
mov dword [ebx + 0x49c], eax
mov ecx, dword [edi + 0x54]
add ecx, 4
mov dword [ebp - 0x14], 0x10b33918
mov edx, ecx
mov dword [ebp - 0x10], 0xc
mov esi, dword [ebp - 0x14]
mov eax, dword [edx]
cmp eax, dword [esi]
mov esi, dword [ebp - 0x18]
jne 0x1038c0c0
add dword [ebp - 0x14], 4
add edx, 4
sub dword [ebp - 0x10], 4
jae 0x1038c0a0
mov eax, 1
jmp 0x1038c0f4
mov edx, 0x10b33928
mov dword [ebp - 0x14], 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1038c0f2
add ecx, 4
add edx, 4
sub dword [ebp - 0x14], 4
jae 0x1038c0d0
cmp dword [ebx + 0x8dc], 0
jne 0x1038c0f2
mov eax, 1
jmp 0x1038c0f4
xor eax, eax
mov dword [ebx + 0x9ac], eax
mov edx, 0x10b33928
mov ecx, dword [edi + 0x54]
mov dword [ebp - 0x10], eax
add ecx, 4
mov dword [ebp - 0x14], 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1038c138
add ecx, 4
add edx, 4
sub dword [ebp - 0x14], 4
jae 0x1038c110
cmp dword [ebp - 0x10], 0
je 0x1038c138
cmp dword [ebx + 0x908], 0
jg 0x1038c138
mov eax, 1
jmp 0x1038c13a
xor eax, eax
mov dword [ebx + 0x9b0], eax
mov eax, dword [esi + 0x5e8]
mov dword [ebx + 0xa04], eax
mov eax, dword [esi + 0x5ec]
mov dword [ebx + 0xa08], eax
mov ecx, dword [esi + 0xd4]
test ecx, ecx
je 0x1038c170
xor eax, eax
cmp ecx, 1
sete al
mov dword [ebx + 0x474], eax
mov ecx, dword [esi + 0xc8]
test ecx, ecx
je 0x1038c188
xor eax, eax
cmp ecx, 2
sete al
mov dword [ebx + 0x49c], eax
xor ecx, ecx
mov eax, 0x3fe00
cmp dword [ebx + 0x49c], 1
cmove ecx, eax
mov eax, dword [ebx + 0x568]
and eax, 0xfffc01ff
or ecx, eax
mov dword [ebx + 0x568], ecx
cmp dword [ebx + 0x908], 1
jl 0x1038c23b
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x1038c1f0
cmp eax, 3
jne 0x1038c1cd
lea ecx, [eax - 2]
jmp 0x1038c1da
xor ecx, ecx
cmp eax, 2
mov eax, 2
cmove ecx, eax
mov eax, dword [ebx + 0x56c]
shl ecx, 0x18
and eax, 0xfcffffff
or ecx, eax
mov dword [ebx + 0x56c], ecx
cmp dword [esi + 0xd0], 0
lea ecx, [ebx + 0x47c]
mov dword [ebp - 0x20], 1
sete al
mov dword [ebp - 0x14], ecx
mov byte [ebx + 0x9e7e], al
lea eax, [ebx + 0x90c]
or dword [ebx + 0x4b0], 0x80000
xor edx, edx
mov dword [ebp - 0x10], eax
mov dword [eax], 1
mov dword [ebp - 0xc], eax
mov eax, ecx
mov dword [ecx], 0
mov ecx, dword [ebp - 0x20]
jmp 0x1038c267
lea eax, [ebx + 0x90c]
mov dword [ebx + 0x47c], 0
mov dword [eax], 1
mov edx, 2
mov dword [ebp - 0xc], eax
xor ecx, ecx
mov dword [ebp - 0x10], eax
lea eax, [ebx + 0x47c]
mov dword [ebp - 0x14], eax
mov dword [eax], ecx
mov dword [ebx + 0x478], 1
mov dword [ebx + 0x468], edx
mov ecx, dword [ebx + 4]
call fcn.102eb9c0
mov ecx, 0x10
test al, al
je 0x1038c34f
mov eax, dword [esi + 0x674]
test eax, eax
jne 0x1038c2cb
cmp dword [esi + 0x678], eax
jne 0x1038c2d0
test dword [esi + 0xa8], 0x4000
je 0x1038c2b4
cmp dword [esi + 0x660], eax
ja 0x1038c2d0
mov eax, dword [esi + 0x5e4]
test eax, eax
cmovne ecx, eax
mov eax, 3
cmp ecx, eax
cmovb eax, ecx
jmp 0x1038c2e6
cmp eax, 7
jge 0x1038c2e1
cmp eax, 1
jge 0x1038c2dc
mov eax, 1
jmp 0x1038c2e6
cmp eax, 7
jl 0x1038c2e6
mov eax, 7
mov dword [ebx + 0x478], eax
cmp dword [esi + 0x674], 0
jne 0x1038c2fc
mov byte [ebx + 0x480], 1
mov ecx, dword [esi + 0x678]
mov edx, dword [ebp - 0x14]
test ecx, ecx
je 0x1038c317
mov eax, 7
cmp ecx, eax
cmovl eax, ecx
mov dword [edx], eax
jmp 0x1038c31e
mov byte [ebx + 0x481], 1
mov byte [ebx + 0xf28], 1
mov eax, dword [ebx + 0x59c]
and eax, 0xa4cfffff
or eax, 0x24c80000
mov dword [ebx + 0x59c], eax
mov eax, dword [ebx + 0x5a0]
and eax, 0xffffffe1
or eax, 0x21
mov dword [ebx + 0x5a0], eax
jmp 0x1038c352
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x908]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x1038c367
mov ecx, dword [esi + 0x670]
jmp 0x1038c369
xor ecx, ecx
mov dword [ebx + 0xf20], ecx
mov dword [ebx + 0x27c], ecx
mov eax, dword [esi + 0x5e4]
mov dword [ebx + 0xf24], eax
mov eax, dword [esi + 0x5e4]
test eax, eax
je 0x1038c3b6
test ecx, ecx
je 0x1038c418
cmp eax, 3
jae 0x1038c418
push 0x10461d80
mov ecx, ebx
call fcn.103e8250
mov eax, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ecx, 2
jne 0x1038c405
cmp dword [ebp - 0x20], 1
jl 0x1038c405
mov eax, dword [ebx + 0x478]
add eax, dword [edx]
cmp eax, 4
jl 0x1038c3ef
mov edx, dword [ebp - 0xc]
cmp eax, 0x10
jle 0x1038c3db
lea eax, [ecx + 0xe]
jmp 0x1038c41b
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], ecx
lea ecx, [ebx + 0x9b8]
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
jmp 0x1038c418
mov ecx, dword [ebp - 0x10]
mov eax, 4
mov dword [ebp - 0x10], ecx
lea ecx, [ebx + 0x9b8]
mov dword [ebp - 8], ecx
jmp 0x1038c418
mov eax, dword [ebx + 0x478]
mov ecx, 0x10
add eax, dword [edx]
cmp eax, 0x10
cmovg eax, ecx
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
test byte [edi + 0x44], 1
jne 0x1038c430
test byte [esi + 0xa8], 1
jne 0x1038c430
xor al, al
jmp 0x1038c432
mov al, 1
mov byte [ebx + 0x939], al
mov eax, dword [edi + 0x44]
shr eax, 1
and al, 1
mov byte [ebx + 0x940], al
mov eax, dword [esi + 0xa8]
shr eax, 6
and al, 1
mov byte [ebx + 0x910], al
mov eax, dword [esi + 0xa8]
shr eax, 7
and al, 1
mov byte [ebx + 0x911], al
mov eax, dword [esi + 0xa8]
shr eax, 0xc
and al, 1
mov byte [ebx + 0x9a8], al
movzx eax, word [esi + 0xaa]
and eax, 1
mov dword [ebx + 0x494], eax
mov eax, dword [esi + 0xb8]
mov dword [ebx + 0x8cc], eax
mov eax, dword [esi + 0xa8]
shr eax, 9
and al, 1
mov byte [ebx + 0x916], al
mov eax, dword [esi + 0xa8]
shr eax, 4
and al, 1
mov byte [ebx + 0x913], al
jne 0x1038c4cd
test dword [esi + 0xa8], 0x200020
jne 0x1038c4cd
mov byte [ebx + 0x915], 0
jmp 0x1038c4df
mov byte [ebx + 0x915], 1
test al, al
je 0x1038c4df
mov byte [ebx + 0x912], 1
mov eax, dword [esi + 0xa8]
shr eax, 0x16
and al, 1
mov byte [ebx + 0x918], al
mov eax, dword [esi + 0xa8]
shr eax, 0x15
and al, 1
mov byte [ebx + 0x97c], al
mov eax, dword [esi + 0xa8]
shr eax, 0xa
and al, 1
mov byte [ebx + 0x93b], al
je 0x1038c51c
mov eax, dword [esi + 0x5e0]
jmp 0x1038c51e
xor eax, eax
mov dword [ebx + 0x93c], eax
mov eax, dword [esi + 0xa8]
shr eax, 0xb
and al, 1
mov byte [ebx + 0x941], al
xor eax, eax
cmp dword [esi + 0x5f0], eax
setne al
mov dword [ebx + 0x944], eax
mov eax, dword [esi + 0x5f4]
mov dword [ebx + 0x948], eax
xor eax, eax
cmp dword [esi + 0x5f8], eax
setne al
mov dword [ebx + 0x94c], eax
mov eax, dword [esi + 0x5fc]
mov dword [ebx + 0x950], eax
mov eax, dword [esi + 0x600]
mov dword [ebx + 0x954], eax
xor eax, eax
cmp dword [esi + 0x604], eax
setne al
mov dword [ebx + 0x958], eax
mov eax, dword [esi + 0x608]
mov dword [ebx + 0x95c], eax
mov eax, dword [esi + 0x60c]
mov dword [ebx + 0x960], eax
mov eax, dword [esi + 0x610]
mov dword [ebx + 0x964], eax
xor eax, eax
cmp dword [esi + 0x614], eax
setne al
mov dword [ebx + 0x968], eax
mov eax, dword [esi + 0x618]
mov dword [ebx + 0x96c], eax
mov eax, dword [esi + 0x61c]
mov dword [ebx + 0x970], eax
xor eax, eax
cmp dword [esi + 0x620], eax
setne al
mov dword [ebx + 0x978], eax
cmp dword [esi + 0x624], 0
setne al
mov byte [ebx + 0x97d], al
mov eax, dword [esi + 0x628]
mov dword [ebx + 0x980], eax
mov eax, dword [esi + 0x62c]
mov dword [ebx + 0x984], eax
cmp dword [edi + 0x34], 0
jbe 0x1038c627
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0
jbe 0x1038c627
mov eax, 1
jmp 0x1038c629
xor eax, eax
mov dword [ebx + 0x974], eax
mov al, byte [esi + 0xa8]
and al, 1
mov byte [ebx + 0x921], al
mov ecx, dword [esi + 0xa8]
and ecx, 5
mov dword [ebp - 0x20], ecx
setne cl
mov byte [ebx + 0x922], cl
mov edx, dword [esi + 0xa8]
shr edx, 3
and dl, 1
mov byte [ebp - 1], cl
mov byte [ebx + 0x923], dl
test al, al
je 0x1038c6da
mov eax, dword [esi + 0xbc]
mov dword [ebx + 0x924], eax
mov edx, dword [esi + 0x66c]
mov dword [ebx + 0x928], edx
mov eax, dword [esi + 0xa8]
shr eax, 0x12
and al, 1
mov byte [ebx + 0x930], al
mov eax, dword [esi + 0xa8]
shr eax, 0x13
and al, 1
mov byte [ebx + 0x917], al
mov eax, dword [esi + 0xe8]
mov dword [ebx + 0x92c], eax
cmp edx, 2
jbe 0x1038c712
cmp dword [esi + 0x5e4], 0
jne 0x1038c712
lea ecx, [edx - 2]
mov edx, 1
shl edx, cl
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
cmp eax, edx
cmovbe eax, edx
mov dword [ecx], eax
mov cl, byte [ebp - 1]
jmp 0x1038c712
cmp dword [ebp - 0x20], 0
jne 0x1038c6fa
test dl, dl
jne 0x1038c6fa
mov dword [ebx + 0x924], 1
mov dword [ebx + 0x928], 1
jmp 0x1038c712
mov eax, dword [esi + 0xbc]
mov dword [ebx + 0x924], eax
mov eax, dword [esi + 0x66c]
mov dword [ebx + 0x928], eax
mov ch, cl
test cl, cl
je 0x1038c770
cmp dword [ebx + 0x86c], 0
jne 0x1038c770
xor edx, edx
cmp dword [ebx + 0x928], edx
jbe 0x1038c770
lea ecx, [ebx + 0x6490]
mov edi, ebx
mov esi, 0x87c
nop dword [eax + eax]
mov eax, dword [ebx + 0x874]
lea ecx, [ecx + 0xc]
mov dword [ecx - 0x10], eax
inc edx
mov eax, dword [ebx + 0x878]
mov dword [ecx - 0xc], eax
mov eax, dword [esi + edi]
mov dword [ecx - 8], eax
cmp edx, dword [ebx + 0x928]
jb 0x1038c740
mov ch, byte [ebx + 0x922]
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x18]
mov eax, dword [edi + 0x54]
cmp dword [eax + 0x74], 0
jbe 0x1038c7cd
test ch, ch
jne 0x1038c785
cmp byte [ebx + 0x921], ch
je 0x1038c7cd
cmp dword [ebx + 0x86c], 0
jne 0x1038c7cd
xor ecx, ecx
cmp dword [ebx + 0x928], ecx
jbe 0x1038c7cd
lea edx, [ebx + 0x6490]
nop
mov eax, dword [edi + 0x54]
lea edx, [edx + 0xc]
movzx eax, byte [eax + ecx + 0x78]
mov dword [edx - 0x10], eax
mov eax, dword [edi + 0x54]
movzx eax, byte [eax + ecx + 0x78]
mov dword [edx - 0xc], eax
mov eax, dword [edi + 0x54]
movzx eax, byte [eax + ecx + 0x78]
inc ecx
mov dword [edx - 8], eax
cmp ecx, dword [ebx + 0x928]
jb 0x1038c7a0
cmp byte [ebx + 0x922], 0
je 0x1038c7e9
cmp byte [ebx + 0x921], 0
jne 0x1038c7e9
mov dword [ebx + 0x9c4], 0
mov eax, dword [esi + 0xa8]
shr eax, 0xe
and eax, 1
mov dword [ebx + 0x9c4], eax
mov ecx, dword [esi + 0x660]
mov dword [ebx + 0x9c8], ecx
mov eax, dword [esi + 0x664]
mov dword [ebx + 0x9cc], eax
je 0x1038c825
cmp dword [esi + 0x5e4], 0
jne 0x1038c825
mov eax, dword [ebp - 0x10]
add dword [eax], ecx
jmp 0x1038c844
mov eax, dword [esi + 0x5e4]
cmp ecx, eax
jl 0x1038c844
add eax, 0xffffffff
mov dword [ebx + 0x9c8], eax
jne 0x1038c844
mov dword [ebx + 0x9c4], 0
mov eax, dword [ebx + 0x448]
cmp eax, 0x80
je 0x1038c85f
cmp eax, 0x76
je 0x1038c85f
mov eax, 1
xor cl, cl
jmp 0x1038c866
mov eax, 2
mov cl, 1
mov byte [ebx + 0x919], cl
mov dword [ebx + 0x64e0], eax
cmp dword [esi + 0xd8], 0
je 0x1038c89a
mov eax, dword [esi + 0xa8]
shr eax, 8
and al, 1
mov byte [ebx + 0x914], al
mov eax, dword [esi + 0xd8]
mov dword [ebx + 0x64d0], eax
jmp 0x1038c8a1
mov byte [ebx + 0x914], 0
mov eax, dword [ebx + 0x20]
cmp eax, 3
je 0x1038c8ae
cmp eax, 2
jne 0x1038c8d8
mov eax, dword [edi + 0x54]
cmp dword [eax + 0xba8], 0
je 0x1038c8d8
mov byte [ebx + 0x9f8], 1
mov eax, dword [edi + 0x54]
mov eax, dword [eax + 0xba8]
mov dword [ebx + 0xa14], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
jmp 0x1038c8df
mov byte [ebx + 0x9f8], 0
mov ecx, dword [esi + 0x668]
mov dword [ebx + 0x460], ecx
mov eax, dword [esi + 0xb4]
mov dword [ebx + 0x464], eax
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0x54]
movsx eax, byte [eax + 0x94]
mov dword [ebp - 0x1c], eax
mov dword [ebx + 0x48c], eax
mov eax, dword [edi + 0x54]
mov al, byte [eax + 0x95]
test al, al
movsx edx, al
cmove edx, dword [ebp - 0x1c]
mov dword [ebx + 0x490], edx
cmp ecx, 3
jne 0x1038c956
cmp dword [ebp - 0x20], 0
jne 0x1038c956
mov eax, dword [ebp - 8]
cmp dword [eax], 0
jne 0x1038c956
mov ecx, dword [ebp - 0x1c]
mov eax, 6
test ecx, ecx
cmovne eax, ecx
test edx, edx
mov dword [ebx + 0x48c], eax
cmove edx, eax
mov dword [ebx + 0x490], edx
test dword [esi + 0xa8], 0x20000
je 0x1038c978
test byte [ebx + 0x86c], 2
je 0x1038c978
cmp dword [ebx + 0x974], 0
je 0x1038c978
mov al, 1
jmp 0x1038c97a
xor al, al
mov byte [ebx + 0xf31], al
mov eax, dword [ebx + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
mov edi, dword [eax + 0x50]
mov edx, dword [eax + 0x48]
mov ecx, dword [eax + 0x4c]
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x20], edi
mov edi, dword [ebp + 8]
test al, 8
jne 0x1038c9ca
test eax, 0x400
jne 0x1038c9ca
test ecx, ecx
js 0x1038c9ca
test dword [ebp - 0x20], 0x20000000
jne 0x1038c9ca
test eax, 0x8000000
jne 0x1038c9ca
test ecx, 0x100
jne 0x1038c9ca
test edx, 0x800000
je 0x1038c9db
mov eax, dword [esi + 0xa8]
shr eax, 0x14
and al, 1
mov byte [ebx + 0xf44], al
mov eax, dword [edi + 0x44]
shr eax, 0xa
and al, 1
mov byte [ebx + 0x9e7c], al
mov eax, dword [edi + 0x44]
shr eax, 0xc
pop edi
and al, 1
mov byte [ebx + 0x9e7d], al
xor eax, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4