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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x160
mov dword [esp + 0x13c], ecx
lea ecx, [esp + 0x60]
mov dword [esp + 0x12c], edx
push dword [ebp + 0xc]
call fcn.10068470
add esp, 4
xor ecx, ecx
lea edx, [0x3ca33a1]
lea edi, [0x3ca33a2]
mov eax, 0xfffffff9
xor esi, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10037825
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1003b06d
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x10037844
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x10037800
mov eax, dword [esp + 0x60]
test eax, eax
je 0x100378b2
movsd xmm0, qword [esp + 0x64]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x30], eax
mov eax, dword [0x3ca7000]
xor ebx, 0x1d
lea ecx, [esp + 0x100]
movsd qword [esp + 0x34], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x9c], xmm0
movaps xmmword [esp + 0x10], xmm0
mov dword [esp + 0xa0], esi
push 4
push 8
push 0x3ca6800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x100], 0
je 0x100378bc
lea ecx, [esp + 0x9c]
call fcn.10004080
xor eax, eax
jmp 0x100378d2
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
jmp 0x1003792c
movdqa xmm0, xmmword [esp + 0x10]
mov eax, dword [esp + 0x104]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp + 0x30]
lea esi, [esp + 0x60]
movd ecx, xmm0
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xc8], ebx
test ecx, ecx
je 0x10037923
movq xmm0, qword [esp + 0xc4]
mov dword [esp + 0x60], ecx
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3407
movq qword [esp + 0x64], xmm0
mov dword [esp + 0x6c], eax
push esi
push 6
call fcn.1005cbb0
add esp, 8
jmp 0x10037cc3
pshufd xmm0, xmm0, 0x55
movd edi, xmm0
mov ecx, 0x3ca33a9
mov edx, 0x11
mov byte [esp + 0x2c], 0
call 0x1006d230
mov edx, dword [edi + 0x34]
mov esi, dword [edi + 0x30]
lea ecx, [edx + edx*8]
mov dword [esp + 8], edx
mov dword [esp + 0x10], esi
lea edi, [ecx + ecx*2]
lea ecx, [edi + edx]
nop word [eax + eax]
test ecx, ecx
je 0x10037983
mov edx, esi
add ecx, 0xffffffe4
add esi, 0x1c
cmp dword [edx], 0
je 0x10037960
cmp dword [edx + 4], eax
jne 0x10037960
mov al, 1
mov byte [esp + 0x2c], 1
mov dword [esp + 0xc], eax
jmp 0x1003798b
mov dword [esp + 0xc], 0
mov ecx, 0x3ca33ba
mov edx, 0x13
call 0x1006d230
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
add ecx, edi
nop word cs:[eax + eax]
nop
test ecx, ecx
je 0x100379d4
mov esi, edx
add ecx, 0xffffffe4
add edx, 0x1c
cmp dword [esi], 0
je 0x100379b0
cmp dword [esi + 4], eax
jne 0x100379b0
mov eax, dword [esp + 0xc]
or al, 2
mov dword [esp + 0xc], eax
mov byte [esp + 0x2c], al
mov ecx, 0x3ca33cd
mov edx, 0xf
call 0x1006d230
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
add ecx, edi
nop dword [eax]
test ecx, ecx
je 0x10037a14
mov esi, edx
add ecx, 0xffffffe4
add edx, 0x1c
cmp dword [esi], 0
je 0x100379f0
cmp dword [esi + 4], eax
jne 0x100379f0
mov eax, dword [esp + 0xc]
or al, 4
mov dword [esp + 0xc], eax
mov byte [esp + 0x2c], al
mov ecx, 0x3ca33dc
mov edx, 0x11
call 0x1006d230
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
add ecx, edi
nop dword [eax]
test ecx, ecx
je 0x10037a54
mov esi, edx
add ecx, 0xffffffe4
add edx, 0x1c
cmp dword [esi], 0
je 0x10037a30
cmp dword [esi + 4], eax
jne 0x10037a30
mov eax, dword [esp + 0xc]
or al, 8
mov dword [esp + 0xc], eax
mov byte [esp + 0x2c], al
mov ecx, 0x3ca33ed
mov edx, 0xa
call 0x1006d230
add edi, dword [esp + 8]
mov edx, dword [esp + 0x10]
lea esi, [esp + 0x60]
nop
test edi, edi
je 0x10037a90
mov ecx, edx
add edi, 0xffffffe4
add edx, 0x1c
cmp dword [ecx], 0
je 0x10037a70
cmp dword [ecx + 4], eax
jne 0x10037a70
mov eax, dword [esp + 0xc]
or al, 0x10
mov byte [esp + 0x2c], al
lea eax, [esp + 0x2c]
lea edi, [esp + 0x30]
mov dword [esp + 0x9c], 1
mov dword [esp + 0xa0], 0
mov dword [esp + 0x60], 0x3ca68cc
mov dword [esp + 0xa4], 0
mov dword [esp + 0x64], 1
mov edx, 0x3ca435c
mov dword [esp + 0x124], eax
lea eax, [esp + 0x9c]
mov ecx, edi
mov dword [esp + 0x30], eax
lea eax, [esp + 0x124]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xb4]
mov dword [esp + 0xb8], 0x3c331c0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], 0
push esi
call fcn.10005570
add esp, 4
test al, al
jne 0x10037c8a
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x28], 2
jb 0x10037c8a
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
cmp byte [eax + 0x2a], 0
je 0x10037b52
lea esi, [esp + 0x60]
mov byte [eax + 0x2a], 0
jmp 0x10037ba7
mov dword [esp + 0x10], ecx
mov dword [esp + 8], edx
lea ecx, [esp + 0x30]
mov edx, 0x3ca34cc
lea esi, [esp + 0x60]
mov dword [esp + 0x60], 0x3ca36fc
mov dword [esp + 0x64], 1
mov dword [esp + 0x68], 0x3ca6800
mov dword [esp + 0x6c], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x70], 0
push esi
call fcn.10005570
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 0x10]
add esp, 4
mov dword [esp + 0xf8], eax
lea eax, [esp + 0x100]
mov dword [esp + 0xc0], 0x3ca3710
mov dword [esp + 0xc4], 3
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x30], 0x3ca33f7
mov dword [esp + 0x34], 0x10
mov dword [esp + 0x100], edi
mov dword [esp + 0x104], 0x3c37930
mov dword [esp + 0x108], esi
mov dword [esp + 0x44], 0x7fffffff
mov dword [esp + 0x40], 0xefffffff
mov dword [esp + 0x3c], 0xffffffdf
mov dword [esp + 0x38], 0
mov byte [esp + 0x48], 0
mov dword [esp + 0x74], 0x7fffffff
mov dword [esp + 0x70], 0xefffffff
mov dword [esp + 0x6c], 0xffffffdf
mov dword [esp + 0x68], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x10c], 0x3c37930
lea ecx, [esp + 0xf8]
mov edx, 0x3ca34cc
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0xcc], 2
mov dword [esp + 0xd0], 0
push eax
call fcn.10005570
add esp, 4
mov edx, 1
mov ecx, 1
push dword [esp + 0xa4]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x10037cc1
mov ecx, dword [0x3ca7000]
push edx
push eax
push dword [esp + 0xa4]
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
dec dword [ebx]
mov eax, dword [esp + 0x12c]
mov eax, dword [eax]
mov ecx, dword [eax + 0x12c]
test ecx, ecx
mov dword [esp + 0x24], ecx
je 0x10037e02
mov eax, dword [eax + 0x128]
xor esi, esi
mov dword [esp + 0xc], eax
lea edx, [eax + 1]
xor eax, eax
jmp 0x10037d1c
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 1
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
sbb eax, 0xffffffff
inc esi
add edx, 0x28
cmp esi, dword [esp + 0x24]
je 0x10037de3
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], eax
lea eax, [esi + esi*4]
mov edi, 8
mov dword [esp + 0x10], edx
cmp byte [ecx + eax*8 + 7], 0
jne 0x10037d90
mov ecx, dword [esp + 0xc]
mov edi, 7
lea eax, [ecx + eax*8]
cmp byte [eax + 6], 0
jne 0x10037d90
cmp byte [eax + 5], 0
mov edi, 6
jne 0x10037d90
cmp byte [eax + 4], 0
mov edi, 5
jne 0x10037d90
cmp byte [eax + 3], 0
mov edi, 4
jne 0x10037d90
cmp byte [eax + 2], 0
mov edi, 3
jne 0x10037d90
cmp byte [eax + 1], 0
mov edi, 2
je 0x10037cf1
nop word cs:[eax + eax]
nop
xor eax, eax
jmp 0x10037dac
add eax, ebx
inc edx
cmp edi, 1
jbe 0x10037d00
movzx ecx, byte [edx - 1]
dec edi
mov ebx, 0
mov ch, cl
and ch, 0xdf
add ch, 0xbf
cmp ch, 0x19
ja 0x10037da0
mov ch, byte [edx]
mov bl, ch
and bl, 0xdf
add bl, 0xbf
cmp bl, 0x19
mov ebx, 0
ja 0x10037da0
xor ch, cl
xor ebx, ebx
cmp ch, 0x20
setae bl
jmp 0x10037da0
mov dword [esp + 0x60], eax
test eax, eax
lea eax, [esp + 0x60]
je 0x10037e02
mov ecx, dword [ebp + 0x10]
mov edx, 0x3c9da90
push eax
push 0x35
call fcn.1005ce80
add esp, 8
mov edx, dword [esp + 0x12c]
lea ecx, [esp + 0x60]
push dword [ebp + 0xc]
call fcn.100693f0
add esp, 4
xor ecx, ecx
lea edx, [0x3ca396c]
lea edi, [0x3ca396d]
mov eax, 0xfffffff9
xor esi, esi
nop dword [eax]
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10037e55
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1003b06d
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x10037e74
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x10037e30
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10037ee2
movsd xmm0, qword [esp + 0x64]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x30], eax
mov eax, dword [0x3ca7000]
xor ebx, 0x15
lea ecx, [esp + 0x100]
movsd qword [esp + 0x34], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x9c], xmm0
movaps xmmword [esp + 0x10], xmm0
mov dword [esp + 0xa0], esi
push 4
push 8
push 0x3ca6800
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x100], 0
je 0x10037eec
lea ecx, [esp + 0x9c]
call fcn.10004080
xor eax, eax
jmp 0x10037f02
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
jmp 0x10037f5e
movdqa xmm0, xmmword [esp + 0x10]
mov eax, dword [esp + 0x104]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], esi
movq xmm0, qword [esp + 0x30]
lea edi, [esp + 0x60]
movd ecx, xmm0
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xc8], ebx
test ecx, ecx
je 0x10037f55
mov esi, dword [ebp + 0x10]
movq xmm0, qword [esp + 0xc4]
mov dword [esp + 0x60], ecx
mov edx, 0x3ca340d
movq qword [esp + 0x64], xmm0
mov dword [esp + 0x6c], eax
mov ecx, esi
push edi
push 0xd
call fcn.1005cbb0
add esp, 8
jmp 0x1003b010
pshufd xmm0, xmm0, 0x55
movd edi, xmm0
mov esi, dword [ebp + 0x10]
lea eax, [edi + 0x2c]
mov edx, 0x3ca3974
mov ecx, esi
push eax
push 0x13
call fcn.1005ce80
add esp, 8
lea eax, [edi + 0x34]
mov ecx, esi
mov edx, 0x3ca3987
push eax
push 0xe
call fcn.1005ce80
add esp, 8
mov eax, dword [edi + 0x18]
mov dword [esp + 0x130], edi
test eax, eax
je 0x10037fb3
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
mov ecx, esi
mov edx, 0x3ca3995
push eax
push 0xf
call fcn.1005ce80
add esp, 8
mov eax, dword [esp + 0x130]
mov dword [esp + 0x138], ebx
mov ebx, dword [eax + 0x10]
mov esi, dword [eax + 0xc]
lea ecx, [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x24], ecx
mov dword [esp + 0xc], eax
test ebx, ebx
je 0x1003803d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10037ff6
mov edi, esi
sub esi, ebx
jbe 0x10038035
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0xf17c9523
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10037ff0
movzx edx, dl
cmp edx, 0xff
jne 0x1003850e
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10037ff6
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x100380ad
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038066
mov edi, esi
sub esi, ebx
jbe 0x100380a5
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038060
movzx edx, dl
cmp edx, 0xff
jne 0x10038578
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038066
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x1003811d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x100380d6
mov edi, esi
sub esi, ebx
jbe 0x10038115
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x100380d0
movzx edx, dl
cmp edx, 0xff
jne 0x100385e8
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x100380d6
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x1003818d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038146
mov edi, esi
sub esi, ebx
jbe 0x10038185
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038140
movzx edx, dl
cmp edx, 0xff
jne 0x10038658
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038146
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x100381fd
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x100381b6
mov edi, esi
sub esi, ebx
jbe 0x100381f5
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x100381b0
movzx edx, dl
cmp edx, 0xff
jne 0x100386c8
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x100381b6
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x1003826d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038226
mov edi, esi
sub esi, ebx
jbe 0x10038265
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038220
movzx edx, dl
cmp edx, 0xff
jne 0x10038738
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038226
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x100382dd
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038296
mov edi, esi
sub esi, ebx
jbe 0x100382d5
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038290
movzx edx, dl
cmp edx, 0xff
jne 0x100387a8
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038296
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x1003834d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038306
mov edi, esi
sub esi, ebx
jbe 0x10038345
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038300
movzx edx, dl
cmp edx, 0xff
jne 0x10038818
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038306
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x100383bd
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038376
mov edi, esi
sub esi, ebx
jbe 0x100383b5
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038370
movzx edx, dl
cmp edx, 0xff
jne 0x10038888
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038376
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x1003842d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x100383e6
mov edi, esi
sub esi, ebx
jbe 0x10038425
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x100383e0
movzx edx, dl
cmp edx, 0xff
jne 0x100388f8
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x100383e6
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x1003849d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038456
mov edi, esi
sub esi, ebx
jbe 0x10038495
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038450
movzx edx, dl
cmp edx, 0xff
jne 0x10038968
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038456
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
mov dword [esp + 0x10], esi
je 0x10038a33
mov edi, ebx
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x100384ca
mov edi, esi
sub esi, ebx
jbe 0x10038a2f
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x100384c0
movzx edx, dl
cmp edx, 0xff
jne 0x100389d8
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x100384ca
jmp 0x10038a2f
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038039
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003853a
mov ebx, edx
sub edx, esi
jbe 0x10038035
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xa43ea9d2
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10038530
movzx eax, al
cmp eax, 0xff
jne 0x10038bca
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003853a
jmp 0x10038035
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x100380a9
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x100385aa
mov ebx, edx
sub edx, esi
jbe 0x100380a5
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xfc0181d4
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100385a0
movzx eax, al
cmp eax, 0xff
jne 0x10038bf5
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x100385aa
jmp 0x100380a5
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038119
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003861a
mov ebx, edx
sub edx, esi
jbe 0x10038115
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x79e0910
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10038610
movzx eax, al
cmp eax, 0xff
jne 0x10038c18
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003861a
jmp 0x10038115
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038189
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003868a
mov ebx, edx
sub edx, esi
jbe 0x10038185
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xa989b559
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10038680
movzx eax, al
cmp eax, 0xff
jne 0x10038c43
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003868a
jmp 0x10038185
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x100381f9
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x100386fa
mov ebx, edx
sub edx, esi
jbe 0x100381f5
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xe9b7ea0f
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100386f0
movzx eax, al
cmp eax, 0xff
jne 0x10038c66
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x100386fa
jmp 0x100381f5
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038269
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003876a
mov ebx, edx
sub edx, esi
jbe 0x10038265
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x444540c2
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10038760
movzx eax, al
cmp eax, 0xff
jne 0x10038c91
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003876a
jmp 0x10038265
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x100382d9
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x100387da
mov ebx, edx
sub edx, esi
jbe 0x100382d5
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xd222f5a1
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100387d0
movzx eax, al
cmp eax, 0xff
jne 0x10038cb4
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x100387da
jmp 0x100382d5
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038349
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003884a
mov ebx, edx
sub edx, esi
jbe 0x10038345
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x40c62caa
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10038840
movzx eax, al
cmp eax, 0xff
jne 0x10038cdf
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003884a
jmp 0x10038345
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x100383b9
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x100388ba
mov ebx, edx
sub edx, esi
jbe 0x100383b5
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x2567082a
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100388b0
movzx eax, al
cmp eax, 0xff
jne 0x10038d02
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x100388ba
jmp 0x100383b5
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038429
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003892a
mov ebx, edx
sub edx, esi
jbe 0x10038425
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x76e7d9ca
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10038920
movzx eax, al
cmp eax, 0xff
jne 0x10038d2d
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003892a
jmp 0x10038425
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038499
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003899a
mov ebx, edx
sub edx, esi
jbe 0x10038495
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xe80b0721
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10038990
movzx eax, al
cmp eax, 0xff
jne 0x10038d50
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003899a
jmp 0x10038495
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038a2f
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x100389f6
mov ebx, edx
sub edx, esi
jbe 0x10038a2f
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x77abf0bc
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100389f0
movzx eax, al
cmp eax, 0xff
jne 0x10038d7f
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x100389f6
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x10038af3
mov edi, ebx
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038a5a
mov edi, esi
sub esi, ebx
jbe 0x10038aef
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038a50
movzx edx, dl
cmp edx, 0xff
jne 0x10038a97
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038a5a
jmp 0x10038aef
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038aef
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x10038ab6
mov ebx, edx
sub edx, esi
jbe 0x10038aef
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x8eab4f58
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10038ab0
movzx eax, al
cmp eax, 0xff
jne 0x10038da6
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x10038ab6
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x10038de4
xor edi, edi
mov esi, ebx
jmp 0x10038b1a
mov esi, ebx
sub ebx, edi
jbe 0x10038de4
shr ebx, 1
mov ecx, dword [esp + 0x10]
xor eax, eax
add ebx, edi
mov edx, ebx
shl edx, 4
cmp dword [ecx + edx + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne al
cmovb eax, ecx
cmp al, 1
je 0x10038b10
movzx eax, al
cmp eax, 0xff
jne 0x10038b58
inc ebx
mov edi, ebx
mov ebx, esi
sub ebx, edi
ja 0x10038b1a
jmp 0x10038de4
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edx + 4]
test ecx, ecx
je 0x10038de4
mov eax, dword [esp + 0x10]
xor edi, edi
mov esi, ecx
mov eax, dword [eax + edx]
jmp 0x10038b8a
mov esi, ecx
sub ecx, edi
jbe 0x10038de4
shr ecx, 1
xor ebx, ebx
add ecx, edi
mov edx, ecx
shl edx, 4
cmp dword [eax + edx + 0xc], 0x71de5ca1
mov edx, 0xff
setne bl
cmovb ebx, edx
cmp bl, 1
je 0x10038b80
movzx edx, bl
cmp edx, 0xff
jne 0x10038dd2
inc ecx
mov edi, ecx
mov ecx, esi
sub ecx, edi
ja 0x10038b8a
jmp 0x10038de4
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca39a4
push 0x19
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x10038041
jmp 0x100380ad
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca39be
push 0x12
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
jmp 0x100380ad
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca39d0
push 0x15
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x10038121
jmp 0x1003818d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca39e5
push 0x10
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
jmp 0x1003818d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca39f5
push 0xe
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x10038201
jmp 0x1003826d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a03
push 0xe
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
jmp 0x1003826d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a11
push 0xc
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x100382e1
jmp 0x1003834d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a1d
push 0xc
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
jmp 0x1003834d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a29
push 0x11
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x100383c1
jmp 0x1003842d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a3a
push 0x13
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
jmp 0x1003842d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a4d
push 0xc
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
mov dword [esp + 0x10], esi
jne 0x100384a9
jmp 0x10038a33
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a59
push 0xe
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
mov ebx, dword [ecx]
mov dword [esp + 0x10], eax
jmp 0x10038a33
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a67
push 0xe
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
mov ebx, dword [ecx]
mov dword [esp + 0x10], eax
test ebx, ebx
jne 0x10038afb
jmp 0x10038de4
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a75
push 0xc
call fcn.1005d080
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov ebx, dword [ecx]
mov esi, dword [eax]
test ebx, ebx
je 0x10038e5d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038e16
mov edi, esi
sub esi, ebx
jbe 0x10038e55
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038e10
movzx edx, dl
cmp edx, 0xff
jne 0x1003932e
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038e16
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x10038ecd
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038e86
mov edi, esi
sub esi, ebx
jbe 0x10038ec5
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038e80
movzx edx, dl
cmp edx, 0xff
jne 0x10039398
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038e86
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x10038f3d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038ef6
mov edi, esi
sub esi, ebx
jbe 0x10038f35
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038ef0
movzx edx, dl
cmp edx, 0xff
jne 0x10039408
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038ef6
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x10038fad
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038f66
mov edi, esi
sub esi, ebx
jbe 0x10038fa5
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038f60
movzx edx, dl
cmp edx, 0xff
jne 0x10039478
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038f66
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x1003901d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10038fd6
mov edi, esi
sub esi, ebx
jbe 0x10039015
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10038fd0
movzx edx, dl
cmp edx, 0xff
jne 0x100394e8
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10038fd6
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x1003908d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10039046
mov edi, esi
sub esi, ebx
jbe 0x10039085
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10039040
movzx edx, dl
cmp edx, 0xff
jne 0x10039558
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10039046
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x100390fd
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x100390b6
mov edi, esi
sub esi, ebx
jbe 0x100390f5
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x100390b0
movzx edx, dl
cmp edx, 0xff
jne 0x100395c8
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x100390b6
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x1003916d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10039126
mov edi, esi
sub esi, ebx
jbe 0x10039165
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10039120
movzx edx, dl
cmp edx, 0xff
jne 0x10039638
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10039126
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x100391dd
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10039196
mov edi, esi
sub esi, ebx
jbe 0x100391d5
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10039190
movzx edx, dl
cmp edx, 0xff
jne 0x100396a8
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10039196
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x1003924d
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10039206
mov edi, esi
sub esi, ebx
jbe 0x10039245
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0x2dd2b3ce
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10039200
movzx edx, dl
cmp edx, 0xff
jne 0x10039718
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10039206
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x100392bd
mov edi, ebx
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x10039276
mov edi, esi
sub esi, ebx
jbe 0x100392b5
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0xbdccfb0c
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10039270
movzx edx, dl
cmp edx, 0xff
jne 0x10039788
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x10039276
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebx, ebx
mov dword [esp + 0x10], esi
je 0x10039853
mov edi, ebx
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x100392ea
mov edi, esi
sub esi, ebx
jbe 0x1003984f
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0xbdccfb0c
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x100392e0
movzx edx, dl
cmp edx, 0xff
jne 0x100397f8
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x100392ea
jmp 0x1003984f
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038e59
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003935a
mov ebx, edx
sub edx, esi
jbe 0x10038e55
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x8ee79d0b
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10039350
movzx eax, al
cmp eax, 0xff
jne 0x100399ea
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003935a
jmp 0x10038e55
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038ec9
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x100393ca
mov ebx, edx
sub edx, esi
jbe 0x10038ec5
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xa8911fe1
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100393c0
movzx eax, al
cmp eax, 0xff
jne 0x10039a15
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x100393ca
jmp 0x10038ec5
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038f39
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003943a
mov ebx, edx
sub edx, esi
jbe 0x10038f35
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x2b937060
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10039430
movzx eax, al
cmp eax, 0xff
jne 0x10039a38
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003943a
jmp 0x10038f35
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10038fa9
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x100394aa
mov ebx, edx
sub edx, esi
jbe 0x10038fa5
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xec0ecdd7
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100394a0
movzx eax, al
cmp eax, 0xff
jne 0x10039a63
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x100394aa
jmp 0x10038fa5
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10039019
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003951a
mov ebx, edx
sub edx, esi
jbe 0x10039015
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x52cd0d58
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10039510
movzx eax, al
cmp eax, 0xff
jne 0x10039a86
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003951a
jmp 0x10039015
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10039089
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003958a
mov ebx, edx
sub edx, esi
jbe 0x10039085
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x779a6791
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10039580
movzx eax, al
cmp eax, 0xff
jne 0x10039ab1
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003958a
jmp 0x10039085
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x100390f9
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x100395fa
mov ebx, edx
sub edx, esi
jbe 0x100390f5
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xba8398bf
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100395f0
movzx eax, al
cmp eax, 0xff
jne 0x10039ad4
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x100395fa
jmp 0x100390f5
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10039169
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003966a
mov ebx, edx
sub edx, esi
jbe 0x10039165
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x60d6f956
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10039660
movzx eax, al
cmp eax, 0xff
jne 0x10039aff
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003966a
jmp 0x10039165
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x100391d9
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x100396da
mov ebx, edx
sub edx, esi
jbe 0x100391d5
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xb43e7fa5
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100396d0
movzx eax, al
cmp eax, 0xff
jne 0x10039b22
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x100396da
jmp 0x100391d5
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10039249
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x1003974a
mov ebx, edx
sub edx, esi
jbe 0x10039245
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xbb752f2e
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10039740
movzx eax, al
cmp eax, 0xff
jne 0x10039b4d
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x1003974a
jmp 0x10039245
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x100392b9
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x100397ba
mov ebx, edx
sub edx, esi
jbe 0x100392b5
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x51efe79a
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100397b0
movzx eax, al
cmp eax, 0xff
jne 0x10039b70
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x100397ba
jmp 0x100392b5
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x1003984f
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x10039816
mov ebx, edx
sub edx, esi
jbe 0x1003984f
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0xa7541692
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10039810
movzx eax, al
cmp eax, 0xff
jne 0x10039b9f
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x10039816
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x10039913
mov edi, ebx
xor ebx, ebx
mov esi, edi
mov dword [esp + 8], edi
jmp 0x1003987a
mov edi, esi
sub esi, ebx
jbe 0x1003990f
shr esi, 1
mov ecx, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [ecx + eax + 0xc], 0xbdccfb0c
mov ecx, 0xff
setne dl
cmovb edx, ecx
cmp dl, 1
je 0x10039870
movzx edx, dl
cmp edx, 0xff
jne 0x100398b7
inc esi
mov ebx, esi
mov esi, edi
sub esi, ebx
ja 0x1003987a
jmp 0x1003990f
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x1003990f
mov ecx, dword [esi + eax]
xor esi, esi
mov ebx, edx
jmp 0x100398d6
mov ebx, edx
sub edx, esi
jbe 0x1003990f
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ecx + edi + 0xc], 0x7e872bc
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x100398d0
movzx eax, al
cmp eax, 0xff
jne 0x10039bc6
inc edx
mov esi, edx
mov edx, ebx
sub edx, esi
ja 0x100398d6
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x10039c04
xor edi, edi
mov esi, ebx
jmp 0x1003993a
mov esi, ebx
sub ebx, edi
jbe 0x10039c04
shr ebx, 1
mov ecx, dword [esp + 0x10]
xor eax, eax
add ebx, edi
mov edx, ebx
shl edx, 4
cmp dword [ecx + edx + 0xc], 0xbdccfb0c
mov ecx, 0xff
setne al
cmovb eax, ecx
cmp al, 1
je 0x10039930
movzx eax, al
cmp eax, 0xff
jne 0x10039978
inc ebx
mov edi, ebx
mov ebx, esi
sub ebx, edi
ja 0x1003993a
jmp 0x10039c04
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edx + 4]
test ecx, ecx
je 0x10039c04
mov eax, dword [esp + 0x10]
xor edi, edi
mov esi, ecx
mov eax, dword [eax + edx]
jmp 0x100399aa
mov esi, ecx
sub ecx, edi
jbe 0x10039c04
shr ecx, 1
xor ebx, ebx
add ecx, edi
mov edx, ecx
shl edx, 4
cmp dword [eax + edx + 0xc], 0xfcf6f23c
mov edx, 0xff
setne bl
cmovb ebx, edx
cmp bl, 1
je 0x100399a0
movzx edx, bl
cmp edx, 0xff
jne 0x10039bf2
inc ecx
mov edi, ecx
mov ecx, esi
sub ecx, edi
ja 0x100399aa
jmp 0x10039c04
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a81
push 0xe
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x10038e61
jmp 0x10038ecd
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a8f
push 0xf
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
jmp 0x10038ecd
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3a9e
push 0xd
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x10038f41
jmp 0x10038fad
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3aab
push 0xd
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
jmp 0x10038fad
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3ab8
push 0xd
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x10039021
jmp 0x1003908d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3ac5
push 0xd
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
jmp 0x1003908d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3ad2
push 0xe
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x10039101
jmp 0x1003916d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3ae0
push 0x10
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
jmp 0x1003916d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3af0
push 0x10
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x100391e1
jmp 0x1003924d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3b00
push 0xe
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
jmp 0x1003924d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3b0e
push 0xd
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [eax]
mov ebx, dword [ecx]
test ebx, ebx
mov dword [esp + 0x10], esi
jne 0x100392c9
jmp 0x10039853
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3b1b
push 0x21
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
mov ebx, dword [ecx]
mov dword [esp + 0x10], eax
jmp 0x10039853
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3b3c
push 0x1a
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
mov ebx, dword [ecx]
mov dword [esp + 0x10], eax
test ebx, ebx
jne 0x1003991b
jmp 0x10039c04
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3b56
push 0x1a
call fcn.1005d080
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov ecx, dword [ecx]
mov esi, dword [eax]
test ecx, ecx
je 0x10039c7d
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, ecx
mov dword [esp + 8], ecx
jmp 0x10039c38
mov dword [esp + 8], esi
sub esi, ebx
jbe 0x10039c79
shr esi, 1
mov edi, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0xbdccfb0c
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x10039c30
movzx edx, dl
cmp edx, 0xff
jne 0x10039e12
inc esi
mov ebx, esi
mov esi, dword [esp + 8]
sub esi, ebx
ja 0x10039c38
mov esi, dword [esp + 0x10]
test ecx, ecx
je 0x10039cdd
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, ecx
mov dword [esp + 8], ecx
jmp 0x10039c98
mov dword [esp + 8], esi
sub esi, ebx
jbe 0x10039cd9
shr esi, 1
mov edi, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0xbdccfb0c
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x10039c90
movzx edx, dl
cmp edx, 0xff
jne 0x10039e8c
inc esi
mov ebx, esi
mov esi, dword [esp + 8]
sub esi, ebx
ja 0x10039c98
mov esi, dword [esp + 0x10]
test ecx, ecx
je 0x10039d3d
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, ecx
mov dword [esp + 8], ecx
jmp 0x10039cf8
mov dword [esp + 8], esi
sub esi, ebx
jbe 0x10039d39
shr esi, 1
mov edi, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0xbdccfb0c
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x10039cf0
movzx edx, dl
cmp edx, 0xff
jne 0x10039efc
inc esi
mov ebx, esi
mov esi, dword [esp + 8]
sub esi, ebx
ja 0x10039cf8
mov esi, dword [esp + 0x10]
test ecx, ecx
je 0x10039d9d
mov dword [esp + 0x10], esi
xor ebx, ebx
mov esi, ecx
mov dword [esp + 8], ecx
jmp 0x10039d58
mov dword [esp + 8], esi
sub esi, ebx
jbe 0x10039d99
shr esi, 1
mov edi, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0x7f4592a6
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x10039d50
movzx edx, dl
cmp edx, 0xff
jne 0x10039f6c
inc esi
mov ebx, esi
mov esi, dword [esp + 8]
sub esi, ebx
ja 0x10039d58
mov esi, dword [esp + 0x10]
test ecx, ecx
mov dword [esp + 0x10], esi
je 0x1003a0fa
xor ebx, ebx
mov esi, ecx
mov dword [esp + 8], ecx
jmp 0x10039dcc
mov dword [esp + 8], esi
sub esi, ebx
jbe 0x1003a0fa
shr esi, 1
mov edi, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0x7f4592a6
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x10039dc0
movzx edx, dl
cmp edx, 0xff
jne 0x10039fdc
inc esi
mov ebx, esi
mov esi, dword [esp + 8]
sub esi, ebx
ja 0x10039dcc
jmp 0x1003a0fa
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10039c7d
mov eax, dword [esi + eax]
xor esi, esi
mov dword [esp + 0x28], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 8]
jmp 0x10039e4c
mov dword [esp + 0x28], edx
sub edx, esi
jbe 0x10039c79
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ebx + edi + 0xc], 0xc57c9916
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10039e40
movzx eax, al
cmp eax, 0xff
jne 0x1003a04c
inc edx
mov esi, edx
mov edx, dword [esp + 0x28]
sub edx, esi
ja 0x10039e4c
jmp 0x10039c79
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10039cdd
mov eax, dword [esi + eax]
xor esi, esi
mov dword [esp + 0x28], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 8]
jmp 0x10039ebc
mov dword [esp + 0x28], edx
sub edx, esi
jbe 0x10039cd9
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ebx + edi + 0xc], 0x9073fc43
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10039eb0
movzx eax, al
cmp eax, 0xff
jne 0x1003a06f
inc edx
mov esi, edx
mov edx, dword [esp + 0x28]
sub edx, esi
ja 0x10039ebc
jmp 0x10039cd9
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10039d3d
mov eax, dword [esi + eax]
xor esi, esi
mov dword [esp + 0x28], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 8]
jmp 0x10039f2c
mov dword [esp + 0x28], edx
sub edx, esi
jbe 0x10039d39
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ebx + edi + 0xc], 0x9557740c
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10039f20
movzx eax, al
cmp eax, 0xff
jne 0x1003a092
inc edx
mov esi, edx
mov edx, dword [esp + 0x28]
sub edx, esi
ja 0x10039f2c
jmp 0x10039d39
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x10039d9d
mov eax, dword [esi + eax]
xor esi, esi
mov dword [esp + 0x28], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 8]
jmp 0x10039f9c
mov dword [esp + 0x28], edx
sub edx, esi
jbe 0x10039d99
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ebx + edi + 0xc], 0x758ec6ee
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x10039f90
movzx eax, al
cmp eax, 0xff
jne 0x1003a0b5
inc edx
mov esi, edx
mov edx, dword [esp + 0x28]
sub edx, esi
ja 0x10039f9c
jmp 0x10039d99
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x1003a0fa
mov eax, dword [esi + eax]
xor esi, esi
mov dword [esp + 0x28], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 8]
jmp 0x1003a00c
mov dword [esp + 0x28], edx
sub edx, esi
jbe 0x1003a0fa
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ebx + edi + 0xc], 0x1a0c6bb7
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x1003a000
movzx eax, al
cmp eax, 0xff
jne 0x1003a0d8
inc edx
mov esi, edx
mov edx, dword [esp + 0x28]
sub edx, esi
ja 0x1003a00c
jmp 0x1003a0fa
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3b70
push 0x1b
call fcn.1005d080
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov ecx, dword [ecx]
jmp 0x10039c7d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3b8b
push 0x1f
call fcn.1005d080
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov ecx, dword [ecx]
jmp 0x10039cdd
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3baa
push 0xe
call fcn.1005d080
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov ecx, dword [ecx]
jmp 0x10039d3d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3bb8
push 0xf
call fcn.1005d080
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov ecx, dword [ecx]
jmp 0x10039d9d
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3bc7
push 0xe
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x1003a1f3
xor ebx, ebx
mov esi, ecx
mov dword [esp + 8], ecx
jmp 0x1003a11c
mov dword [esp + 8], esi
sub esi, ebx
jbe 0x1003a1f3
shr esi, 1
mov edi, dword [esp + 0x10]
xor edx, edx
add esi, ebx
mov eax, esi
shl eax, 4
cmp dword [edi + eax + 0xc], 0x7f4592a6
mov edi, 0xff
setne dl
cmovb edx, edi
cmp dl, 1
je 0x1003a110
movzx edx, dl
cmp edx, 0xff
jne 0x1003a15e
inc esi
mov ebx, esi
mov esi, dword [esp + 8]
sub esi, ebx
ja 0x1003a11c
jmp 0x1003a1f3
mov esi, dword [esp + 0x10]
mov edx, dword [esi + eax + 4]
test edx, edx
je 0x1003a1f3
mov eax, dword [esi + eax]
xor esi, esi
mov dword [esp + 0x28], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 8]
jmp 0x1003a198
mov dword [esp + 0x28], edx
sub edx, esi
jbe 0x1003a1f3
shr edx, 1
xor eax, eax
add edx, esi
mov edi, edx
shl edi, 4
cmp dword [ebx + edi + 0xc], 0x7484c14b
mov edi, 0xff
setne al
cmovb eax, edi
cmp al, 1
je 0x1003a190
movzx eax, al
cmp eax, 0xff
jne 0x1003a1d1
inc edx
mov esi, edx
mov edx, dword [esp + 0x28]
sub edx, esi
ja 0x1003a198
jmp 0x1003a1f3
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3bd5
push 0x14
call fcn.1005d080
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x1003a2c1
xor edi, edi
mov esi, ecx
jmp 0x1003a21a
mov esi, ecx
sub ecx, edi
jbe 0x1003a2c1
shr ecx, 1
mov edx, dword [esp + 0x10]
xor eax, eax
add ecx, edi
mov ebx, ecx
shl ebx, 4
cmp dword [edx + ebx + 0xc], 0x7f4592a6
mov edx, 0xff
setne al
cmovb eax, edx
cmp al, 1
je 0x1003a210
movzx eax, al
cmp eax, 0xff
jne 0x1003a255
inc ecx
mov edi, ecx
mov ecx, esi
sub ecx, edi
ja 0x1003a21a
jmp 0x1003a2c1
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + ebx + 4]
test ecx, ecx
je 0x1003a2c1
mov eax, dword [esp + 0x10]
xor edi, edi
mov esi, ecx
mov eax, dword [eax + ebx]
jmp 0x1003a276
mov esi, ecx
sub ecx, edi
jbe 0x1003a2c1
shr ecx, 1
xor ebx, ebx
add ecx, edi
mov edx, ecx
shl edx, 4
cmp dword [eax + edx + 0xc], 0x9dd84f83
mov edx, 0xff
setne bl
cmovb ebx, edx
cmp bl, 1
je 0x1003a270
movzx edx, bl
cmp edx, 0xff
jne 0x1003a2af
inc ecx
mov edi, ecx
mov ecx, esi
sub ecx, edi
ja 0x1003a276
jmp 0x1003a2c1
mov ecx, dword [ebp + 0x10]
mov edx, 0x3ca3be9
push 0x14
call fcn.1005d080
add esp, 4
mov edx, dword [ebp + 8]
mov eax, dword [edx]
or eax, dword [edx + 4]
jne 0x1003ace6
mov eax, dword [esp + 0xc]
movaps xmm0, xmmword [0x3c9d250]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x144], eax
je 0x1003a98e
mov eax, dword [esp + 0x24]
movdqa xmm1, xmmword [0x3c9d260]
lea ebx, [esp + 0x89]
xor edx, edx
xor esi, esi
mov dword [esp + 0x10], 0
mov edi, dword [eax]
xor eax, eax
mov dword [esp + 0x140], edi
jmp 0x1003a36f
mov ecx, dword [esp + 0xfb]
mov eax, dword [esp + 0xf8]
mov edi, dword [esp + 0x140]
lea ebx, [esp + 0x89]
mov dword [esp + 0x33], ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x33]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 0x127], ecx
inc eax
cmp eax, dword [esp + 0x144]
je 0x1003a967
mov ecx, dword [esp + 0x10]
movups xmmword [esp + 0x60], xmm0
movdqu xmmword [esp + 0x70], xmm1
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], edx
mov esi, eax
mov eax, dword [esp + 0x124]
lea edx, [esp + 0x60]
mov dword [esp + 0x148], esi
shl esi, 4
mov byte [esp + 0x88], cl
mov ecx, dword [esp + 0x127]
mov dword [ebx + 3], ecx
mov dword [ebx], eax
lea eax, [edi + esi]
lea ecx, [esp + 0x158]
mov dword [esp + 0x90], eax
mov eax, dword [edi + esi + 0xc]
mov dword [esp + 0x158], eax
call fcn.10062080
mov eax, dword [edi + esi + 4]
test eax, eax
mov dword [esp + 0x150], eax
je 0x1003a930
mov eax, dword [edi + esi]
movdqu xmm0, xmmword [esp + 0x60]
movdqu xmm1, xmmword [esp + 0x70]
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x80]
mov ecx, dword [ebx + 3]
xor edi, edi
mov dword [esp + 0x14c], eax
movzx eax, byte [esp + 0x88]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfb], ecx
jmp 0x1003a4d8
mov eax, dword [esp + 0x9f]
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0xb7], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x100], edi
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0xac]
mov dword [esp + 0x104], ecx
movups xmmword [esp + 0x108], xmm0
mov dword [esp + 0x118], edi
mov edi, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xf8], edi
mov edi, dword [esp + 0x154]
mov dword [esp + 0x11c], ecx
mov ecx, dword [esp + 0xb7]
movups xmm0, xmmword [esp + 0x100]
movdqu xmm1, xmmword [esp + 0x110]
inc edi
mov dword [esp + 0xfb], ecx
cmp edi, dword [esp + 0x150]
je 0x1003a320
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfb]
movdqu xmmword [esp + 0x100], xmm0
movd dword [esp + 8], xmm0
pshufd xmm0, xmm0, 0x55
movdqu xmmword [esp + 0x110], xmm1
pshufd xmm2, xmm1, 0xff
pshufd xmm1, xmm1, 0xee
mov dword [esp + 0x154], edi
mov ebx, 0xfffffffd
movd dword [esp + 0xc], xmm0
movups xmm0, xmmword [esp + 0x108]
movd dword [esp + 0xb0], xmm2
movd dword [esp + 0xac], xmm1
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb7], ecx
mov ecx, dword [esp + 0x14c]
mov eax, edi
lea edi, [esp + 0x2d]
shl eax, 4
mov eax, dword [ecx + eax + 0xc]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 4
mov dword [esp + 0x134], eax
nop
mov eax, dword [esp + 8]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x9f]
mov dword [esp + 0x28], esi
lea esi, [esp + 0xe9]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc4], eax
movups xmmword [esp + 0xc8], xmm0
mov dword [esi + 3], edx
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x10]
mov dword [esi], edx
movzx edx, byte [ecx]
mov ecx, eax
xor esi, esi
shl cl, 3
shld esi, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne esi, edx
cmovne edx, ecx
inc al
or esi, dword [esp + 0x28]
or edx, dword [esp + 0x24]
test al, 7
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe0], edx
mov byte [esp + 0xe8], al
jne 0x1003a6db
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
xor ecx, edx
xor eax, esi
lea edx, [esp + 0x30]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], eax
lea ecx, [esp + 0xc0]
movsd xmm1, qword [esp + 0xe0]
movsd xmm2, qword [esp + 0xd8]
movsd xmm0, qword [esp + 0xe8]
movsd qword [esp + 0x50], xmm1
movsd xmm1, qword [esp + 0xd0]
movsd qword [esp + 0x48], xmm2
movq xmm2, qword [esp + 0xc0]
movsd qword [esp + 0x58], xmm0
movsd qword [esp + 0x40], xmm1
movq xmm1, qword [esp + 0xc8]
movq qword [esp + 0x30], xmm2
movq qword [esp + 0x38], xmm1
push 1
call fcn.10007d20
add esp, 4
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
movups xmm0, xmmword [esp + 0xc8]
xor edx, edx
xor esi, esi
xor eax, dword [esp + 0xe0]
xor ecx, dword [esp + 0xe4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc], ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xac], eax
movzx eax, byte [esp + 0xe8]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0xe9]
test ebx, ebx
mov eax, dword [ecx]
mov ecx, dword [ecx + 3]
mov dword [esp + 0x9f], ecx
mov ecx, edi
lea edi, [edi + 1]
mov dword [esp + 0x9c], eax
cmove edi, ecx
je 0x1003a70e
inc ebx
test ecx, ecx
jne 0x1003a570
mov ecx, dword [esp + 0x9f]
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x9c]
mov ebx, 0xfffffffd
mov dword [esp + 0xb7], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x100], edi
mov edi, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0xb0]
movups xmmword [esp + 0x108], xmm0
mov dword [esp + 0x118], edi
lea edi, [esp + 0x135]
mov dword [esp + 0x11c], ecx
lea ecx, [esp + 0x134]
nop word [eax + eax]
mov eax, dword [esp + 8]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x9f]
mov dword [esp + 0x28], esi
lea esi, [esp + 0xe9]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc4], eax
movups xmmword [esp + 0xc8], xmm0
mov dword [esi + 3], edx
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x10]
mov dword [esi], edx
movzx edx, byte [ecx]
mov ecx, eax
xor esi, esi
shl cl, 3
shld esi, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne esi, edx
cmovne edx, ecx
inc al
or esi, dword [esp + 0x28]
or edx, dword [esp + 0x24]
test al, 7
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe0], edx
mov byte [esp + 0xe8], al
jne 0x1003a8eb
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
xor ecx, edx
xor eax, esi
lea edx, [esp + 0x30]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], eax
lea ecx, [esp + 0xc0]
movsd xmm1, qword [esp + 0xe0]
movsd xmm2, qword [esp + 0xd8]
movsd xmm0, qword [esp + 0xe8]
movsd qword [esp + 0x50], xmm1
movsd xmm1, qword [esp + 0xd0]
movsd qword [esp + 0x48], xmm2
movq xmm2, qword [esp + 0xc0]
movsd qword [esp + 0x58], xmm0
movsd qword [esp + 0x40], xmm1
movq xmm1, qword [esp + 0xc8]
movq qword [esp + 0x30], xmm2
movq qword [esp + 0x38], xmm1
push 1
call fcn.10007d20
add esp, 4
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
movups xmm0, xmmword [esp + 0xc8]
xor edx, edx
xor esi, esi
xor eax, dword [esp + 0xe0]
xor ecx, dword [esp + 0xe4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc], ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xac], eax
movzx eax, byte [esp + 0xe8]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0xe9]
test ebx, ebx
mov eax, dword [ecx]
mov ecx, dword [ecx + 3]
mov dword [esp + 0x9f], ecx
mov ecx, edi
lea edi, [edi + 1]
mov dword [esp + 0x9c], eax
cmove edi, ecx
je 0x1003a440
inc ebx
test ecx, ecx
jne 0x1003a780
jmp 0x1003a440
mov eax, dword [ebx]
movups xmm0, xmmword [esp + 0x60]
movdqu xmm1, xmmword [esp + 0x70]
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 3]
mov dword [esp + 0x33], eax
movzx eax, byte [esp + 0x88]
mov dword [esp + 0x10], eax
jmp 0x1003a344
mov eax, dword [esp + 0x10]
pshufd xmm2, xmm1, 0x55
movd ebx, xmm1
movd edi, xmm2
pshufd xmm2, xmm1, 0xff
pshufd xmm1, xmm1, 0xee
movd ecx, xmm1
movd dword [esp + 8], xmm2
jmp 0x1003a9ab
mov edi, 0x9f4d7eae
mov ebx, 0x85b22284
mov dword [esp + 8], 0x92a8d606
mov ecx, 0x6c6e6d9a
xor eax, eax
xor edx, edx
xor esi, esi
mov byte [esp + 0x58], al
movzx eax, al
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], edi
xor ecx, edx
mov dword [esp + 0x50], edx
lea edx, [esp + 0x60]
shl eax, 0x18
or eax, esi
lea esi, [esp + 0x30]
mov dword [esp + 0x54], eax
xor eax, dword [esp + 8]
mov dword [esp + 0x48], ecx
mov ecx, esi
mov dword [esp + 0x4c], eax
movsd xmm1, qword [esp + 0x50]
movsd xmm2, qword [esp + 0x48]
movsd xmm0, qword [esp + 0x58]
movsd qword [esp + 0x80], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0x78], xmm2
movsd xmm2, qword [esp + 0x30]
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0x70], xmm1
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x60], xmm2
movsd qword [esp + 0x68], xmm1
push 1
call fcn.10007d20
add esp, 4
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x60]
xor dword [esp + 0x30], ecx
xor dword [esp + 0x34], eax
not byte [esp + 0x40]
mov ecx, esi
movsd xmm1, qword [esp + 0x50]
movsd xmm0, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x38]
movsd qword [esp + 0x80], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0x68], xmm2
movsd qword [esp + 0x78], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0x70], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0x60], xmm1
push 3
call fcn.10007d20
add esp, 4
movdqu xmm0, xmmword [esp + 0x30]
movdqu xmm1, xmmword [esp + 0x40]
movaps xmm2, xmmword [0x3c9d250]
mov edi, dword [esp + 0x130]
lea esi, [esp + 0xc0]
lea ecx, [esp + 0x60]
mov edx, esi
pxor xmm1, xmm0
movups xmmword [esp + 0xc0], xmm2
pshufd xmm0, xmm1, 0xee
pxor xmm0, xmm1
movaps xmm1, xmmword [0x3c9d260]
movdqa xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0xd0], xmm1
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], 0
mov byte [esp + 0xe8], 0
mov eax, dword [edi + 0x38]
mov dword [esp + 0x60], eax
call fcn.10062080
mov eax, dword [edi + 0x3c]
lea ecx, [esp + 0x60]
mov edx, esi
mov dword [esp + 0x60], eax
call fcn.10062080
mov eax, dword [edi + 0x40]
lea ecx, [esp + 0x60]
mov edx, esi
mov dword [esp + 0x60], eax
call fcn.10062080
mov eax, dword [edi + 0x44]
lea ecx, [esp + 0x60]
mov edx, esi
mov dword [esp + 0x60], eax
call fcn.10062080
mov eax, dword [edi + 0x48]
lea ecx, [esp + 0x60]
mov edx, esi
mov dword [esp + 0x60], eax
call fcn.10062080
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0xd0]
mov esi, dword [esp + 0xd4]
mov ecx, dword [esp + 0xe0]
movups xmm0, xmmword [esp + 0xc0]
mov byte [esp + 0x58], al
shl eax, 0x18
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], edx
mov dword [esp + 0x50], ecx
xor ecx, dword [esp + 0xd8]
lea edx, [esp + 0x60]
lea esi, [esp + 0x30]
or eax, dword [esp + 0xe4]
mov dword [esp + 0x54], eax
xor eax, dword [esp + 0xdc]
mov dword [esp + 0x48], ecx
mov ecx, esi
mov dword [esp + 0x4c], eax
movsd xmm1, qword [esp + 0x50]
movsd xmm2, qword [esp + 0x48]
movsd xmm0, qword [esp + 0x58]
movsd qword [esp + 0x80], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0x78], xmm2
movsd xmm2, qword [esp + 0x30]
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0x70], xmm1
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x60], xmm2
movsd qword [esp + 0x68], xmm1
push 1
call fcn.10007d20
add esp, 4
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x60]
xor dword [esp + 0x30], ecx
xor dword [esp + 0x34], eax
not byte [esp + 0x40]
mov ecx, esi
movsd xmm1, qword [esp + 0x50]
movsd xmm0, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x38]
movsd qword [esp + 0x80], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0x68], xmm2
movsd qword [esp + 0x78], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0x70], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0x60], xmm1
push 3
call fcn.10007d20
add esp, 4
movdqu xmm0, xmmword [esp + 0x30]
movdqu xmm1, xmmword [esp + 0x40]
mov edx, dword [ebp + 8]
pxor xmm1, xmm0
mov dword [edx + 4], 0
mov dword [edx], 1
pshufd xmm0, xmm1, 0xee
pxor xmm0, xmm1
movaps xmm1, xmmword [esp + 0x10]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
add ecx, eax
movlps qword [edx + 8], xmm1
mov dword [edx + 0x10], ecx
lea eax, [esp + 0xc0]
movaps xmm1, xmmword [0x3c9d270]
mov dword [esp + 0x30], 0x3ca3c0c
mov dword [esp + 0x34], 1
pxor xmm0, xmm0
lea ebx, [esp + 0xb4]
mov dword [esp + 0x60], 2
mov dword [esp + 0x100], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x104], 0x20
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
mov dword [esp + 0x108], 0
mov ecx, ebx
mov dword [esp + 0xb4], eax
lea eax, [edx + 0x10]
mov edx, 0x3ca3c14
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x9c]
mov dword [esp + 0xa0], 0x3c368f0
mov dword [esp + 0x38], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x3c], 1
movups xmmword [esp + 0x68], xmm1
mov dword [esp + 0x78], 8
mov byte [esp + 0x7c], 3
mov dword [esp + 0x40], eax
lea eax, [esp + 0x30]
mov dword [esp + 0x44], 1
push eax
call fcn.10005570
add esp, 4
test al, al
jne 0x1003b086
mov edx, dword [esp + 0x104]
mov esi, dword [esp + 0x108]
cmp esi, edx
ja 0x1003b0a9
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x100]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x60], 0x3ca68cc
lea ebx, [esp + 0x30]
mov dword [esp + 0x64], 1
mov dword [esp + 0xb4], 1
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov edx, 0x3ca435c
mov ecx, ebx
add eax, 8
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0xfc], 0x3c33070
mov dword [esp + 0x68], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], 0
push eax
call fcn.10005570
add esp, 4
test al, al
jne 0x1003afc9
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x28], 2
jb 0x1003afc9
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x2a], 0
je 0x1003ae9d
lea edx, [esp + 0x60]
mov byte [eax + 0x2a], 0
jmp 0x1003aee6
mov dword [esp + 0x30], eax
mov edx, 0x3ca34cc
lea eax, [esp + 0x60]
mov dword [esp + 0x60], 0x3ca36fc
mov dword [esp + 0x64], 1
mov dword [esp + 0x68], 0x3ca6800
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
lea ecx, [esp + 0x30]
push eax
call fcn.10005570
mov eax, dword [ebp + 0x10]
lea edx, [esp + 0x64]
add esp, 4
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x124], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x100], 0x3ca3710
mov dword [esp + 0xa0], 0x3c37930
mov dword [esp + 0xa4], edx
mov dword [esp + 0x104], 3
mov dword [esp + 0x44], 0x7fffffff
mov dword [esp + 0x40], 0xefffffff
mov dword [esp + 0x3c], 0xffffffdf
mov dword [esp + 0x38], 0
mov byte [esp + 0x48], 0
mov dword [esp + 0xa8], 0x3c37930
mov edx, 0x3ca34cc
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x9c]
mov dword [esp + 0x74], 0x7fffffff
mov dword [esp + 0x70], 0xefffffff
mov dword [esp + 0x6c], 0xffffffdf
mov dword [esp + 0x68], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], 2
mov dword [esp + 0x110], 0
lea ecx, [esp + 0x124]
push eax
call fcn.10005570
add esp, 4
mov edx, 1
mov ecx, 1
push dword [esp + 0xbc]
call fcn.100078c0
add esp, 4
test eax, eax
je 0x1003b000
mov ecx, dword [0x3ca7000]
push edx
push eax
push dword [esp + 0xbc]
push 0x3ca6800
call dword [ecx + 0x10]
add esp, 0x10
mov eax, dword [esp + 0x138]
mov esi, dword [ebp + 0x10]
lea edi, [esp + 0x60]
dec dword [eax]
mov edx, dword [esp + 0x12c]
lea ecx, [esp + 0x30]
push esi
push dword [ebp + 0xc]
call fcn.10041f10
add esp, 8
cmp dword [esp + 0x30], 0
je 0x1003b058
movq xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
mov ecx, esi
mov edx, 0x3ca341a
movsd qword [esp + 0x68], xmm1
movq qword [esp + 0x60], xmm0
push edi
push 0xd
call fcn.1005cbb0
add esp, 8
mov eax, dword [esp + 0x13c]
mov dword [eax], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x3ca51ac
mov edx, 0xe
push 0x3c9ed4c
call fcn.100053c0
add esp, 4
ud2
mov ecx, 0x3ca67d4
mov edx, 0x2b
push 0x3ca3c2c
push 0x3ca3ca0
lea eax, [esp + 0x68]
push eax
call fcn.10005c10
add esp, 0xc
ud2
mov ecx, esi
push 0x3c9f010
call fcn.10004ed0
add esp, 4
ud2