Function at 0x1021efe0
Capabilities:
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x284
mov eax, dword [0x11ad127c]
xor eax, esp
mov dword [esp + 0x280], eax
push ebx
mov ebx, ecx
mov byte [esp + 0x26], 1
push esi
push edi
mov dword [esp + 0x48], ebx
xor esi, esi
mov dword [esp + 0x50], 0x1046e6d0
lea edi, [ebx + 0xecc]
mov dword [esp + 0x54], 0x1046e6e0
mov dword [esp + 0x58], 0x1046e6f0
mov dword [esp + 0x5c], 0x1046e710
mov dword [esp + 0x60], 0x1046e730
mov dword [esp + 0x64], 0x1046e740
mov dword [esp + 0x68], 0x1046e750
mov dword [esp + 0x6c], 0x1046e760
mov dword [esp + 0x70], 0x1046e770
nop dword [eax + eax]
push dword [esp + esi*4 + 0x50]
push edi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021f079
inc esi
cmp esi, 9
jb 0x1021f060
jmp 0x1021f085
or byte [ebx + 0xb3], 1
mov byte [esp + 0x2e], 0
test byte [ebx + 0xb0], 1
jne 0x1021f097
test byte [ebx + 0xb3], 2
je 0x1021f0ad
or dword [ebx + 0x1154], 2
mov byte [esp + 0x2e], 0
mov dword [ebx + 0x9c], 1
mov eax, dword [ebx + 0xc4]
shr eax, 1
test al, 1
je 0x1021f0c0
or dword [ebx + 0x1154], 2
and dword [ebx + 4], 0xfbc7363f
lea edi, [ebx + 0x9b8]
push 0
push 0x1046c220
mov ecx, edi
mov dword [esp + 0x40], 0x23
mov dword [esp + 0x38], 0
mov dword [ebx + 0x3f94], 0x461c3c00
mov dword [ebx + 0x3f9c], 0x461c3c00
mov dword [ebx + 0x3f98], 0xc61c3c00
mov dword [ebx + 0x3fa0], 0xc61c3c00
mov dword [ebx + 0x3fa4], 0x3f800000
mov dword [ebx + 0x3fac], 0x3f800000
mov dword [ebx + 0x3fa8], 0
mov dword [ebx + 0x3fb0], 0
mov dword [ebx + 0x3fc8], 0x4eff0000
mov dword [ebx + 0x3fcc], 0
mov dword [ebx + 0x3fd0], 0x3f800000
mov dword [ebx + 0x3fd4], 0
mov dword [ebx + 0x3fb4], 0x3f800000
mov dword [ebx + 0x3fb8], 0x461c4000
mov dword [ebx + 0x3fbc], 0x3f800000
mov dword [ebx + 0x3fc0], 1
mov dword [ebx + 0x14], 0x40800000
mov dword [ebx + 0x38], 0x40a00000
mov dword [ebx + 0x3788], 0xc61c3c00
call fcn.101ffd90
lea eax, [esp + 0x34]
mov ecx, edi
push eax
push 0x1046de00
call fcn.10200690
test al, al
je 0x1021f1c3
xor eax, eax
cmp dword [esp + 0x34], eax
setne al
jmp 0x1021f1c5
xor eax, eax
mov byte [ebx + 0x3bd0], al
mov ecx, edi
lea eax, [esp + 0x34]
push eax
push 0x1046e790
call fcn.10200690
test al, al
je 0x1021f1eb
xor eax, eax
cmp dword [esp + 0x34], eax
setne al
jmp 0x1021f1ed
xor eax, eax
mov byte [ebx + 0x3bd1], al
cmp dword [edi + 8], 0
mov byte [esp + 0x2f], 0
je 0x1021f2a5
cmp byte [0x11d213c0], 0
je 0x1021f21a
cmp dword [edi], 0
je 0x1021f21a
mov ecx, 0x11d20670
call fcn.100f83a0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x1021f285
cmp dword [edi], 0
je 0x1021f259
push 0
push 0
push 0
push 0
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0x100
push eax
lea eax, [esp + 0x9c]
push eax
push 0
push ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov ecx, dword [edi + 4]
cmp eax, 0x103
sete byte [esp + 0x2f]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x1021f285
cmp byte [esp + 0x2f], al
je 0x1021f272
push dword [edi + 8]
call fcn.102001a0
mov eax, dword [edi + 8]
mov dword [edi + 4], 0
mov byte [eax], 0
mov dword [edi], 0
mov esi, dword [edi + 0xc]
test esi, esi
je 0x1021f2a5
mov ecx, esi
call fcn.101ffa20
push 0x10
push esi
call fcn.1045088a
add esp, 8
mov dword [edi + 0xc], 0
mov ecx, ebx
call fcn.1021e3a0
mov edx, dword fs:[0x2c]
mov ecx, dword [0x11d0c5b8]
mov dword [esp + 0x34], edx
test al, al
je 0x1022283b
mov edx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea esi, [ebx + 0x84]
mov dword [esi], 0
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
mov dword [esp + 0x20], edx
test eax, eax
jne 0x1021f30a
cmp dword [edi], 0
jne 0x1021f30a
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021f3de
push esi
push 0x1046d6b0
call fcn.10200690
jmp 0x1021f3da
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d6b0
push eax
call edx
sub eax, 0
je 0x1021f3d4
mov ecx, dword [edi]
test ecx, ecx
je 0x1021f3c0
cmp byte [0x11d213c0], 0
je 0x1021f3a0
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
nop
push 0x1046d6b0
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021f37d
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021f350
jmp 0x1021f3da
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
mov ecx, dword [eax + 0x11c24854]
jne 0x1021f3da
lea eax, [ebx + 0x84]
push eax
push ecx
call fcn.100f76e0
jmp 0x1021f3da
mov edx, 0x1046d6b0
call fcn.101ff260
test eax, eax
je 0x1021f3da
cmp word [eax + 2], 4
mov edx, dword [esp + 0x20]
jne 0x1021f3de
mov eax, dword [eax + 6]
mov dword [esi], eax
jmp 0x1021f3de
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021f3da
push esi
push 0x1046d6b0
call fcn.10200690
jmp 0x1021f3da
mov eax, dword [esp + 0x18]
mov dword [esi], eax
mov edx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea esi, [ebx + 0x88]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1021f412
cmp dword [edi], eax
jne 0x1021f412
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021f4c1
push esi
push 0x1046e7a0
call fcn.10200690
jmp 0x1021f4c1
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e7a0
push eax
call edx
sub eax, 0
je 0x1021f4bb
mov ecx, dword [edi]
test ecx, ecx
je 0x1021f3f7
cmp byte [0x11d213c0], 0
je 0x1021f4a1
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
push 0x1046e7a0
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021f47f
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021f452
jmp 0x1021f4c1
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x1021f4c1
lea ecx, [ebx + 0x88]
push ecx
push dword [eax + 0x11c24854]
call fcn.100f76e0
jmp 0x1021f4c1
mov edx, 0x1046e7a0
call fcn.101ff260
test eax, eax
je 0x1021f4c1
cmp word [eax + 2], 4
jne 0x1021f4c1
mov eax, dword [eax + 6]
jmp 0x1021f4bf
mov eax, dword [esp + 0x18]
mov dword [esi], eax
mov eax, dword [edi + 4]
lea esi, [ebx + 0x8c]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1021f4fd
cmp dword [edi], eax
jne 0x1021f4fd
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021f5c5
push esi
push 0x1046e7c0
call fcn.10200690
test al, al
je 0x1021f5c5
jmp 0x1021f5bd
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e7c0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x1021f5b7
mov ecx, dword [edi]
test ecx, ecx
je 0x1021f4da
cmp byte [0x11d213c0], 0
je 0x1021f593
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
nop
push 0x1046e7c0
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021f56d
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021f540
jmp 0x1021f5c5
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x1021f5c5
lea esi, [ebx + 0x8c]
push esi
push dword [eax + 0x11c24854]
call fcn.100f76e0
test al, al
je 0x1021f5c5
jmp 0x1021f5bd
mov edx, 0x1046e7c0
call fcn.101ff260
test eax, eax
je 0x1021f5c5
xor cl, cl
cmp word [eax + 2], 4
jne 0x1021f5b1
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esi], eax
test cl, cl
je 0x1021f5c5
jmp 0x1021f5bd
mov eax, dword [esp + 0x18]
mov dword [esi], eax
mov eax, dword [esi]
mov dword [ebx + 0x88], eax
mov eax, dword [edi + 4]
lea esi, [ebx + 0x94]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1021f5f9
cmp dword [edi], eax
jne 0x1021f5f9
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021f6b0
push esi
push 0x1046d320
call fcn.10200690
jmp 0x1021f6b0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d320
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x1021f6aa
mov ecx, dword [edi]
test ecx, ecx
je 0x1021f5de
cmp byte [0x11d213c0], 0
je 0x1021f690
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
nop dword [eax + eax]
push 0x1046d320
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021f66d
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021f640
jmp 0x1021f6b0
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
mov ecx, dword [eax + 0x11c24854]
jne 0x1021f6b0
lea eax, [ebx + 0x94]
push eax
push ecx
call fcn.100f76e0
jmp 0x1021f6b0
mov edx, 0x1046d320
call fcn.101ff260
test eax, eax
je 0x1021f6b0
cmp word [eax + 2], 4
jne 0x1021f6b0
mov eax, dword [eax + 6]
jmp 0x1021f6ae
mov eax, dword [esp + 0x18]
mov dword [esi], eax
mov eax, dword [edi + 4]
lea esi, [ebx + 0x98]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1021f6e4
cmp dword [edi], eax
jne 0x1021f6e4
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021f761
push esi
push 0x1046d910
call fcn.10200690
jmp 0x1021f761
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d910
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x1021f7df
mov ecx, dword [edi]
test ecx, ecx
je 0x1021f6c9
cmp byte [0x11d213c0], 0
je 0x1021f7c3
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
nop word [eax + eax]
push 0x1046d910
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021f7a1
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021f730
lea esi, [ebx + 0x98]
cmp dword [esi], 0
lea esi, [ebx + 0x9c]
mov dword [esp + 0x14], 4
setne al
mov byte [ebx + 0xa54], al
mov eax, dword [edi + 4]
test eax, eax
jne 0x1021f7ea
cmp dword [edi], eax
jne 0x1021f7ea
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021f8a0
push esi
push 0x1046d6d0
call fcn.10200690
jmp 0x1021f8a0
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x1021f75b
lea esi, [ebx + 0x98]
push esi
push dword [eax + 0x11c24854]
call fcn.100f76e0
jmp 0x1021f761
mov edx, 0x1046d910
call fcn.101ff260
test eax, eax
je 0x1021f761
cmp word [eax + 2], 4
jne 0x1021f761
mov eax, dword [eax + 6]
mov dword [esi], eax
jmp 0x1021f761
mov eax, dword [esp + 0x18]
mov dword [esi], eax
jmp 0x1021f761
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d6d0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x1021f89a
mov ecx, dword [edi]
test ecx, ecx
je 0x1021f786
cmp byte [0x11d213c0], 0
je 0x1021f880
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
push 0x1046d6d0
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021f85d
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021f830
jmp 0x1021f8a0
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
mov ecx, dword [eax + 0x11c24854]
jne 0x1021f8a0
lea eax, [ebx + 0x9c]
push eax
push ecx
call fcn.100f76e0
jmp 0x1021f8a0
mov edx, 0x1046d6d0
call fcn.101ff260
test eax, eax
je 0x1021f8a0
cmp word [eax + 2], 4
jne 0x1021f8a0
mov eax, dword [eax + 6]
jmp 0x1021f89e
mov eax, dword [esp + 0x18]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1021f8e2
cmp dword [edi], eax
jne 0x1021f8e2
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021f9b4
lea eax, [esp + 0x10]
push eax
push 0x1046d360
call fcn.10200690
test al, al
je 0x1021f9b4
jmp 0x1021f9a3
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d360
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x1021f99b
mov ecx, dword [edi]
test ecx, ecx
je 0x1021f8bb
cmp byte [0x11d213c0], 0
je 0x1021f975
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
push 0x1046d360
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021f951
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021f924
jmp 0x1021f9b4
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x1021f9b4
lea ecx, [esp + 0x10]
push ecx
push dword [eax + 0x11c24854]
call fcn.100f76e0
test al, al
je 0x1021f9b4
jmp 0x1021f9a3
mov edx, 0x1046d360
call fcn.101ff260
test eax, eax
je 0x1021f9b4
xor cl, cl
cmp word [eax + 2], 4
jne 0x1021f995
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x10], eax
test cl, cl
je 0x1021f9b4
jmp 0x1021f9a3
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
neg eax
sbb eax, eax
and eax, 2
or dword [ebx + 0x1154], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1021f9ed
cmp dword [edi], eax
jne 0x1021f9ed
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021fae1
lea esi, [ebx + 0x14]
push esi
push 0x1046d200
call fcn.10200690
test al, al
je 0x1021fae1
jmp 0x1021fac4
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d200
push eax
call esi
sub eax, 0
je 0x1021fabb
mov ecx, dword [edi]
test ecx, ecx
je 0x1021faaf
cmp byte [0x11d213c0], 0
je 0x1021fa88
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
push 0x1046d200
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021fa65
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021fa35
jmp 0x1021fae1
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x1021fae1
lea esi, [ebx + 0x14]
push esi
push dword [eax + 0x11c24854]
call fcn.100f76e0
test al, al
je 0x1021fae1
jmp 0x1021fac4
mov edx, 0x1046d200
call fcn.101ff260
test eax, eax
je 0x1021fae5
xor cl, cl
lea esi, [ebx + 0x14]
cmp word [eax + 2], 4
jne 0x1021faa9
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esi], eax
test cl, cl
je 0x1021fae1
jmp 0x1021fac4
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021fae5
jmp 0x1021f9d2
mov eax, dword [esp + 0x18]
lea esi, [ebx + 0x14]
mov dword [esi], eax
movss xmm0, dword [esi]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1021fada
mov dword [esi], 0x3a83126f
or dword [ebx + 4], 0x80000
mov esi, dword [esp + 0x20]
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1021fb1f
cmp dword [edi], eax
jne 0x1021fb1f
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021fbcf
lea eax, [esp + 0x10]
push eax
push 0x1046d220
call fcn.10200690
jmp 0x1021fbcf
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d220
push eax
call esi
sub eax, 0
je 0x1021fbc7
mov ecx, dword [edi]
test ecx, ecx
je 0x1021fb00
cmp byte [0x11d213c0], 0
je 0x1021fbad
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
nop
push 0x1046d220
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021fb8d
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021fb60
jmp 0x1021fbcf
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x1021fbcf
lea ecx, [esp + 0x10]
push ecx
push dword [eax + 0x11c24854]
call fcn.100f76e0
jmp 0x1021fbcf
mov edx, 0x1046d220
call fcn.101ff260
test eax, eax
je 0x1021fbcf
cmp word [eax + 2], 4
jne 0x1021fbcf
mov eax, dword [eax + 6]
jmp 0x1021fbcb
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
lea esi, [ebx + 0x68]
mov dword [esp + 0x14], 4
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x1122d540]
movss dword [ebx + 0x18], xmm0
mov eax, dword [edi + 4]
test eax, eax
jne 0x1021fc29
cmp dword [edi], eax
jne 0x1021fc29
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021fcdd
push esi
push 0x1046d730
call fcn.10200690
jmp 0x1021fcdd
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d730
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x1021fcd7
mov ecx, dword [edi]
test ecx, ecx
je 0x1021fc0e
cmp byte [0x11d213c0], 0
je 0x1021fcbd
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
nop dword [eax + eax]
push 0x1046d730
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021fc9d
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021fc70
jmp 0x1021fcdd
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
mov ecx, dword [eax + 0x11c24854]
jne 0x1021fcdd
lea eax, [ebx + 0x68]
push eax
push ecx
call fcn.100f76e0
jmp 0x1021fcdd
mov edx, 0x1046d730
call fcn.101ff260
test eax, eax
je 0x1021fcdd
cmp word [eax + 2], 4
jne 0x1021fcdd
mov eax, dword [eax + 6]
jmp 0x1021fcdb
mov eax, dword [esp + 0x18]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1021fd44
cmp dword [edi], eax
jne 0x1021fd44
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021fd06
lea eax, [esp + 0x38]
push eax
push 0x1046d930
call fcn.10200690
mov esi, dword [esp + 0x20]
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1021fe3c
cmp dword [edi], eax
jne 0x1021fe3c
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021feef
lea eax, [esp + 0x30]
push eax
push 0x1046ddf0
call fcn.10200690
jmp 0x1021feef
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d930
push eax
call esi
sub eax, 0
je 0x1021fe2f
mov ecx, dword [edi]
test ecx, ecx
je 0x1021fe10
cmp byte [0x11d213c0], 0
je 0x1021fde7
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
nop dword [eax]
push 0x1046d930
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021fdc0
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021fd90
jmp 0x1021fd06
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x1021fd06
lea ecx, [esp + 0x38]
push ecx
push dword [eax + 0x11c24854]
call fcn.100f76e0
jmp 0x1021fd06
mov edx, 0x1046d930
call fcn.101ff260
test eax, eax
je 0x1021fd0a
cmp word [eax + 2], 4
jne 0x1021fd0a
mov eax, dword [eax + 6]
mov dword [esp + 0x38], eax
jmp 0x1021fd0a
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021fd0a
lea eax, [esp + 0x38]
push eax
push 0x1046d930
call fcn.10200690
jmp 0x1021fd0a
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
jmp 0x1021fd0a
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046ddf0
push eax
call esi
sub eax, 0
je 0x1021fee7
mov ecx, dword [edi]
test ecx, ecx
je 0x1021fd25
cmp byte [0x11d213c0], 0
je 0x1021fecd
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], eax
push 0x1046ddf0
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021fead
mov eax, dword [esp + 0x24]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x24], eax
cmp eax, 0x4b84
jb 0x1021fe80
jmp 0x1021feef
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x1021feef
lea ecx, [esp + 0x30]
push ecx
push dword [eax + 0x11c24854]
call fcn.100f76e0
jmp 0x1021feef
mov edx, 0x1046ddf0
call fcn.101ff260
test eax, eax
je 0x1021feef
cmp word [eax + 2], 4
jne 0x1021feef
mov eax, dword [eax + 6]
jmp 0x1021feeb
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1021ff29
cmp dword [edi], eax
jne 0x1021ff29
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1021fffd
lea eax, [esp + 0x24]
push eax
push 0x1046de00
call fcn.10200690
test al, al
je 0x1021fffd
jmp 0x1021ffef
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046de00
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x1021ffe7
mov ecx, dword [edi]
test ecx, ecx
je 0x1021ff02
cmp byte [0x11d213c0], 0
je 0x1021ffc1
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], eax
nop dword [eax + eax]
push 0x1046de00
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1021ff9d
mov eax, dword [esp + 0x1c]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x1c], eax
cmp eax, 0x4b84
jb 0x1021ff70
jmp 0x1021fffd
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x1021fffd
lea ecx, [esp + 0x24]
push ecx
push dword [eax + 0x11c24854]
call fcn.100f76e0
test al, al
je 0x1021fffd
jmp 0x1021ffef
mov edx, 0x1046de00
call fcn.101ff260
test eax, eax
je 0x1021fffd
xor cl, cl
cmp word [eax + 2], 4
jne 0x1021ffe1
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x24], eax
test cl, cl
je 0x1021fffd
jmp 0x1021ffef
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], 0
setne al
mov byte [ebx + 0x3bd0], al
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10220037
cmp dword [edi], eax
jne 0x10220037
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10220109
lea eax, [esp + 0x10]
push eax
push 0x1046d9a0
call fcn.10200690
test al, al
je 0x10220109
jmp 0x102200ff
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d9a0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102200f7
mov ecx, dword [edi]
test ecx, ecx
je 0x10220010
cmp byte [0x11d213c0], 0
je 0x102200d1
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], eax
nop dword [eax]
push 0x1046d9a0
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x102200ad
mov eax, dword [esp + 0x1c]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x1c], eax
cmp eax, 0x4b84
jb 0x10220080
jmp 0x10220109
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x10220109
lea ecx, [esp + 0x10]
push ecx
push dword [eax + 0x11c24854]
call fcn.100f76e0
test al, al
je 0x10220109
jmp 0x102200ff
mov edx, 0x1046d9a0
call fcn.101ff260
test eax, eax
je 0x10220109
xor cl, cl
cmp word [eax + 2], 4
jne 0x102200f1
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x10], eax
test cl, cl
je 0x10220109
jmp 0x102200ff
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0xf4], eax
test dword [ebx + 4], 0x400000
je 0x10220412
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10220158
cmp dword [edi], eax
jne 0x10220158
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102201f6
lea eax, [esp + 0x10]
push eax
push 0x1046d530
call fcn.10200690
test al, al
je 0x102201f6
jmp 0x102201e8
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d530
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102201e0
mov ecx, dword [edi]
test ecx, ecx
je 0x10220131
cmp byte [0x11d213c0], 0
je 0x102201ba
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d530
call fcn.100f6950
test al, al
je 0x102201f6
cmp dword [esp + 0x18], 0
jne 0x102201f6
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
test al, al
je 0x102201f6
jmp 0x102201e8
mov edx, 0x1046d530
call fcn.101ff260
test eax, eax
je 0x102201f6
xor cl, cl
cmp word [eax + 2], 4
jne 0x102201da
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x10], eax
test cl, cl
je 0x102201f6
jmp 0x102201e8
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
je 0x102201f6
or dword [ebx + 4], 0x8000
lea esi, [ebx + 0x3a74]
mov dword [esp + 0x14], 4
mov dword [esi], 0x3f800000
mov eax, dword [edi + 4]
test eax, eax
jne 0x10220230
cmp dword [edi], eax
jne 0x10220230
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102202aa
push esi
push 0x1046d5a0
call fcn.10200690
jmp 0x102202aa
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d5a0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102202a4
mov ecx, dword [edi]
test ecx, ecx
je 0x10220215
cmp byte [0x11d213c0], 0
je 0x1022028a
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d5a0
call fcn.100f6950
test al, al
je 0x102202aa
cmp dword [esp + 0x18], 0
jne 0x102202aa
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x102202aa
mov edx, 0x1046d5a0
call fcn.101ff260
test eax, eax
je 0x102202aa
cmp word [eax + 2], 4
jne 0x102202aa
mov eax, dword [eax + 6]
jmp 0x102202a8
mov eax, dword [esp + 0xc]
mov dword [esi], eax
lea esi, [ebx + 0x3a78]
mov dword [esp + 0x14], 4
mov dword [esi], 0x3f800000
mov eax, dword [edi + 4]
test eax, eax
jne 0x102202e4
cmp dword [edi], eax
jne 0x102202e4
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1022035e
push esi
push 0x1046d5b0
call fcn.10200690
jmp 0x1022035e
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d5b0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10220358
mov ecx, dword [edi]
test ecx, ecx
je 0x102202c9
cmp byte [0x11d213c0], 0
je 0x1022033e
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d5b0
call fcn.100f6950
test al, al
je 0x1022035e
cmp dword [esp + 0x18], 0
jne 0x1022035e
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x1022035e
mov edx, 0x1046d5b0
call fcn.101ff260
test eax, eax
je 0x1022035e
cmp word [eax + 2], 4
jne 0x1022035e
mov eax, dword [eax + 6]
jmp 0x1022035c
mov eax, dword [esp + 0xc]
mov dword [esi], eax
lea esi, [ebx + 0x3a7c]
mov dword [esp + 0x14], 4
mov dword [esi], 0x3f800000
mov eax, dword [edi + 4]
test eax, eax
jne 0x10220398
cmp dword [edi], eax
jne 0x10220398
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10220412
push esi
push 0x1046d5c0
call fcn.10200690
jmp 0x10220412
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d5c0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x1022040c
mov ecx, dword [edi]
test ecx, ecx
je 0x1022037d
cmp byte [0x11d213c0], 0
je 0x102203f2
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d5c0
call fcn.100f6950
test al, al
je 0x10220412
cmp dword [esp + 0x18], 0
jne 0x10220412
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10220412
mov edx, 0x1046d5c0
call fcn.101ff260
test eax, eax
je 0x10220412
cmp word [eax + 2], 4
jne 0x10220412
mov eax, dword [eax + 6]
jmp 0x10220410
mov eax, dword [esp + 0xc]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1022044b
cmp dword [edi], eax
jne 0x1022044b
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10220513
lea edx, [ebx + 0x38]
push edx
push 0x1046d290
call fcn.10200690
test al, al
je 0x10220513
jmp 0x1022050c
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d290
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10220505
mov ecx, dword [edi]
test ecx, ecx
je 0x10220425
cmp byte [0x11d213c0], 0
je 0x102204e0
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], eax
nop dword [eax]
push 0x1046d290
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x102204bd
mov eax, dword [esp + 0x1c]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x1c], eax
cmp eax, 0x4b84
jb 0x10220490
jmp 0x10220513
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x10220513
lea edx, [ebx + 0x38]
push edx
push dword [eax + 0x11c24854]
call fcn.100f76e0
test al, al
je 0x10220513
jmp 0x1022050c
mov edx, 0x1046d290
call fcn.101ff260
test eax, eax
je 0x10220513
xor cl, cl
cmp word [eax + 2], 4
jne 0x102204ff
mov eax, dword [eax + 6]
mov cl, 1
mov dword [ebx + 0x38], eax
test cl, cl
je 0x10220513
jmp 0x1022050c
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x38], eax
or dword [ebx + 4], 0x100000
lea esi, [ebx + 0x44]
mov dword [esp + 0x14], 4
mov dword [esi], 0
mov eax, dword [edi + 4]
test eax, eax
jne 0x1022054a
cmp dword [edi], eax
jne 0x1022054a
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102205fd
push esi
push 0x1046d950
call fcn.10200690
jmp 0x102205fd
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d950
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102205f7
mov ecx, dword [edi]
test ecx, ecx
je 0x1022052f
cmp byte [0x11d213c0], 0
je 0x102205dd
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], eax
nop dword [eax]
push 0x1046d950
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x102205bd
mov eax, dword [esp + 0x1c]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x1c], eax
cmp eax, 0x4b84
jb 0x10220590
jmp 0x102205fd
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
mov ecx, dword [eax + 0x11c24854]
jne 0x102205fd
lea eax, [ebx + 0x44]
push eax
push ecx
call fcn.100f76e0
jmp 0x102205fd
mov edx, 0x1046d950
call fcn.101ff260
test eax, eax
je 0x102205fd
cmp word [eax + 2], 4
jne 0x102205fd
mov eax, dword [eax + 6]
jmp 0x102205fb
mov eax, dword [esp + 0x18]
mov dword [esi], eax
cmp dword [ebx + 0x748], 0x10
lea esi, [ebx + 0x50]
mov eax, 0xfefefe
mov dword [esp + 0x14], 4
mov ecx, 0xf7de
cmove eax, ecx
mov dword [esi], eax
mov eax, dword [edi + 4]
test eax, eax
jne 0x10220644
cmp dword [edi], eax
jne 0x10220644
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102206fd
push esi
push 0x1046d1b0
call fcn.10200690
jmp 0x102206fd
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d1b0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102206f7
mov ecx, dword [edi]
test ecx, ecx
je 0x10220629
cmp byte [0x11d213c0], 0
je 0x102206dd
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], eax
nop word [eax + eax]
push 0x1046d1b0
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x102206bd
mov eax, dword [esp + 0x1c]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x1c], eax
cmp eax, 0x4b84
jb 0x10220690
jmp 0x102206fd
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
mov ecx, dword [eax + 0x11c24854]
jne 0x102206fd
lea eax, [ebx + 0x50]
push eax
push ecx
call fcn.100f76e0
jmp 0x102206fd
mov edx, 0x1046d1b0
call fcn.101ff260
test eax, eax
je 0x102206fd
cmp word [eax + 2], 4
jne 0x102206fd
mov eax, dword [eax + 6]
jmp 0x102206fb
mov eax, dword [esp + 0x18]
mov dword [esi], eax
test byte [ebx + 0xb0], 0x40
lea esi, [ebx + 0x3c]
mov dword [esi], 0
jne 0x102207b8
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1022073e
cmp dword [edi], eax
jne 0x1022073e
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102207b8
push esi
push 0x1046d440
call fcn.10200690
jmp 0x102207b8
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d440
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102207b2
mov ecx, dword [edi]
test ecx, ecx
je 0x10220726
cmp byte [0x11d213c0], 0
je 0x10220798
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d440
call fcn.100f6950
test al, al
je 0x102207b8
cmp dword [esp + 0x18], 0
jne 0x102207b8
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x102207b8
mov edx, 0x1046d440
call fcn.101ff260
test eax, eax
je 0x102207b8
cmp word [eax + 2], 4
jne 0x102207b8
mov eax, dword [eax + 6]
jmp 0x102207b6
mov eax, dword [esp + 0xc]
mov dword [esi], eax
lea esi, [ebx + 0x40]
mov dword [esp + 0x14], 4
mov dword [esi], 0
mov eax, dword [edi + 4]
test eax, eax
jne 0x102207ef
cmp dword [edi], eax
jne 0x102207ef
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1022089e
push esi
push 0x1046d760
call fcn.10200690
jmp 0x1022089e
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d760
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10220898
mov ecx, dword [edi]
test ecx, ecx
je 0x102207d4
cmp byte [0x11d213c0], 0
je 0x1022087e
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], eax
push 0x1046d760
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x1022085e
mov eax, dword [esp + 0x1c]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x1c], eax
cmp eax, 0x4b84
jb 0x10220831
jmp 0x1022089e
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
mov ecx, dword [eax + 0x11c24854]
jne 0x1022089e
lea eax, [ebx + 0x40]
push eax
push ecx
call fcn.100f76e0
jmp 0x1022089e
mov edx, 0x1046d760
call fcn.101ff260
test eax, eax
je 0x1022089e
cmp word [eax + 2], 4
jne 0x1022089e
mov eax, dword [eax + 6]
jmp 0x1022089c
mov eax, dword [esp + 0x18]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
test eax, eax
jne 0x102208e0
cmp dword [edi], eax
jne 0x102208e0
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10220a6e
lea eax, [esp + 0x10]
push eax
push 0x1046d1a0
call fcn.10200690
test al, al
je 0x10220a6e
jmp 0x102209b4
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d1a0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102209ac
mov ecx, dword [edi]
test ecx, ecx
je 0x102208b9
cmp byte [0x11d213c0], 0
je 0x1022097e
xor eax, eax
mov esi, 0x11c247f0
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], eax
push 0x1046d1a0
push esi
call fcn.1043ab70
add esp, 8
test eax, eax
je 0x10220952
mov eax, dword [esp + 0x1c]
add esi, 0x6c
inc dword [esp + 0xc]
add eax, 0x6c
mov dword [esp + 0x1c], eax
cmp eax, 0x4b84
jb 0x10220922
jmp 0x10220a6e
imul eax, dword [esp + 0xc], 0x6c
cmp dword [eax + 0x11c24858], 0
jne 0x10220a6e
lea ecx, [esp + 0x10]
push ecx
push dword [eax + 0x11c24854]
call fcn.100f76e0
test al, al
je 0x10220a6e
jmp 0x102209b4
mov edx, 0x1046d1a0
call fcn.101ff260
test eax, eax
je 0x10220a6e
xor cl, cl
cmp word [eax + 2], 4
jne 0x102209a2
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x10], eax
test cl, cl
je 0x10220a6e
jmp 0x102209b4
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
je 0x10220a6e
or dword [ebx + 4], 0x800
lea esi, [ebx + 0x48]
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x102209f4
cmp dword [edi], eax
jne 0x102209f4
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10220a6e
push esi
push 0x1046d270
call fcn.10200690
jmp 0x10220a6e
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d270
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10220a68
mov ecx, dword [edi]
test ecx, ecx
je 0x102209dc
cmp byte [0x11d213c0], 0
je 0x10220a4e
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d270
call fcn.100f6950
test al, al
je 0x10220a6e
cmp dword [esp + 0x18], 0
jne 0x10220a6e
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10220a6e
mov edx, 0x1046d270
call fcn.101ff260
test eax, eax
je 0x10220a6e
cmp word [eax + 2], 4
jne 0x10220a6e
mov eax, dword [eax + 6]
jmp 0x10220a6c
mov eax, dword [esp + 0xc]
mov dword [esi], eax
mov eax, dword [edi + 4]
lea esi, [ebx + 0x30]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10220aa7
cmp dword [edi], eax
jne 0x10220aa7
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10220b33
push esi
push 0x1046d7c0
call fcn.10200690
test al, al
je 0x10220b33
jmp 0x10220b2f
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d7c0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10220b29
mov ecx, dword [edi]
test ecx, ecx
je 0x10220a84
cmp byte [0x11d213c0], 0
je 0x10220b05
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d7c0
call fcn.100f6950
test al, al
je 0x10220b33
cmp dword [esp + 0x18], 0
jne 0x10220b33
push esi
push dword [esp + 0x20]
call fcn.100f76e0
test al, al
je 0x10220b33
jmp 0x10220b2f
mov edx, 0x1046d7c0
call fcn.101ff260
test eax, eax
je 0x10220b33
xor cl, cl
cmp word [eax + 2], 4
jne 0x10220b23
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esi], eax
test cl, cl
je 0x10220b33
jmp 0x10220b2f
mov eax, dword [esp + 0xc]
mov dword [esi], eax
or dword [ebx + 4], 0x40
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10220b75
cmp dword [edi], eax
jne 0x10220b75
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10220c13
lea eax, [esp + 0x10]
push eax
push 0x1046d7e0
call fcn.10200690
test al, al
je 0x10220c13
jmp 0x10220c05
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d7e0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10220bfd
mov ecx, dword [edi]
test ecx, ecx
je 0x10220b4e
cmp byte [0x11d213c0], 0
je 0x10220bd7
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d7e0
call fcn.100f6950
test al, al
je 0x10220c13
cmp dword [esp + 0x18], 0
jne 0x10220c13
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
test al, al
je 0x10220c13
jmp 0x10220c05
mov edx, 0x1046d7e0
call fcn.101ff260
test eax, eax
je 0x10220c13
xor cl, cl
cmp word [eax + 2], 4
jne 0x10220bf7
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x10], eax
test cl, cl
je 0x10220c13
jmp 0x10220c05
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
je 0x10220c13
or dword [ebx + 4], 0x80
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10220c55
cmp dword [edi], eax
jne 0x10220c55
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10220cf3
lea eax, [esp + 0x10]
push eax
push 0x1046d3b0
call fcn.10200690
test al, al
je 0x10220cf3
jmp 0x10220ce5
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d3b0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10220cdd
mov ecx, dword [edi]
test ecx, ecx
je 0x10220c2e
cmp byte [0x11d213c0], 0
je 0x10220cb7
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d3b0
call fcn.100f6950
test al, al
je 0x10220cf3
cmp dword [esp + 0x18], 0
jne 0x10220cf3
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
test al, al
je 0x10220cf3
jmp 0x10220ce5
mov edx, 0x1046d3b0
call fcn.101ff260
test eax, eax
je 0x10220cf3
xor cl, cl
cmp word [eax + 2], 4
jne 0x10220cd7
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x10], eax
test cl, cl
je 0x10220cf3
jmp 0x10220ce5
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
je 0x10220cf3
or dword [ebx + 4], 0x4000
mov eax, dword [edi + 4]
lea esi, [ebx + 0x34]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10220d2c
cmp dword [edi], eax
jne 0x10220d2c
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10220dbb
push esi
push 0x1046d810
call fcn.10200690
test al, al
je 0x10220dbb
jmp 0x10220db4
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d810
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10220dae
mov ecx, dword [edi]
test ecx, ecx
je 0x10220d09
cmp byte [0x11d213c0], 0
je 0x10220d8a
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d810
call fcn.100f6950
test al, al
je 0x10220dbb
cmp dword [esp + 0x18], 0
jne 0x10220dbb
push esi
push dword [esp + 0x20]
call fcn.100f76e0
test al, al
je 0x10220dbb
jmp 0x10220db4
mov edx, 0x1046d810
call fcn.101ff260
test eax, eax
je 0x10220dbb
xor cl, cl
cmp word [eax + 2], 4
jne 0x10220da8
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esi], eax
test cl, cl
je 0x10220dbb
jmp 0x10220db4
mov eax, dword [esp + 0xc]
mov dword [esi], eax
or dword [ebx + 4], 0x100
mov dword [ebx + 0x3fc0], 1
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10220dff
cmp dword [edi], eax
jne 0x10220dff
mov ecx, dword [edi + 0xc]
test ecx, ecx
je case.0x10220e9f.3
lea eax, [esp + 0x10]
push eax
push 0x1046e7e0
call fcn.10200690
test al, al
je case.0x10220e9f.3
jmp 0x10220e8f
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e7e0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10220e87
mov ecx, dword [edi]
test ecx, ecx
je 0x10220dd8
cmp byte [0x11d213c0], 0
je 0x10220e61
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e7e0
call fcn.100f6950
test al, al
je case.0x10220e9f.3
cmp dword [esp + 0x18], 0
jne case.0x10220e9f.3
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
test al, al
je case.0x10220e9f.3
jmp 0x10220e8f
mov edx, 0x1046e7e0
call fcn.101ff260
test eax, eax
je case.0x10220e9f.3
xor cl, cl
cmp word [eax + 2], 4
jne 0x10220e81
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x10], eax
test cl, cl
je case.0x10220e9f.3
jmp 0x10220e8f
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp eax, 8
ja case.0x10220e9f.3
movzx eax, byte [eax + 0x10222af0]
jmp dword [eax*4 + 0x10222ae8]
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x3fc0], eax
mov eax, dword [ebx + 0x3fb4]
lea edx, [ebx + 0x3fb4]
mov dword [edx], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10220f2b
cmp dword [edi], eax
jne 0x10220f2b
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10220ee3
push edx
push 0x1046e7f0
call fcn.10200690
mov esi, dword [esp + 0x20]
mov eax, dword [ebx + 0x3fb8]
lea edx, [ebx + 0x3fb8]
mov dword [edx], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10220ff7
cmp dword [edi], eax
jne 0x10220ff7
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221093
push edx
push 0x1046e810
call fcn.10200690
jmp 0x10221093
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e7f0
push eax
call esi
sub eax, 0
je 0x10220fe8
mov ecx, dword [edi]
test ecx, ecx
je 0x10220fc7
cmp byte [0x11d213c0], 0
je 0x10220f9c
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e7f0
call fcn.100f6950
test al, al
je 0x10220ee7
cmp dword [esp + 0x18], 0
jne 0x10220ee7
lea edx, [ebx + 0x3fb4]
push edx
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10220ee7
mov edx, 0x1046e7f0
call fcn.101ff260
test eax, eax
je 0x10220ee7
cmp word [eax + 2], 4
jne 0x10220ee7
mov eax, dword [eax + 6]
mov dword [ebx + 0x3fb4], eax
jmp 0x10220ee7
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10220ee7
lea edx, [ebx + 0x3fb4]
push edx
push 0x1046e7f0
call fcn.10200690
jmp 0x10220ee7
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x3fb4], eax
jmp 0x10220ee7
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e810
push eax
call esi
sub eax, 0
je 0x10221089
mov ecx, dword [edi]
test ecx, ecx
je 0x1022106f
cmp byte [0x11d213c0], 0
je 0x10221055
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e810
call fcn.100f6950
test al, al
je 0x10221093
cmp dword [esp + 0x18], 0
jne 0x10221093
lea edx, [ebx + 0x3fb8]
push edx
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10221093
mov edx, 0x1046e810
call fcn.101ff260
test eax, eax
je 0x10221093
cmp word [eax + 2], 4
jne 0x10221093
mov eax, dword [eax + 6]
jmp 0x1022108d
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221093
lea edx, [ebx + 0x3fb8]
push edx
push 0x1046e810
call fcn.10200690
jmp 0x10221093
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x3fb8], eax
lea esi, [ebx + 0x54]
mov dword [esp + 0x14], 4
mov dword [esi], 0x3f800000
mov eax, dword [edi + 4]
test eax, eax
jne 0x102210c7
cmp dword [edi], eax
jne 0x102210c7
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221141
push esi
push 0x1046d970
call fcn.10200690
jmp 0x10221141
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d970
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x1022113b
mov ecx, dword [edi]
test ecx, ecx
je 0x102210af
cmp byte [0x11d213c0], 0
je 0x10221121
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d970
call fcn.100f6950
test al, al
je 0x10221141
cmp dword [esp + 0x18], 0
jne 0x10221141
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10221141
mov edx, 0x1046d970
call fcn.101ff260
test eax, eax
je 0x10221141
cmp word [eax + 2], 4
jne 0x10221141
mov eax, dword [eax + 6]
jmp 0x1022113f
mov eax, dword [esp + 0xc]
mov dword [esi], eax
lea edx, [ebx + 0x3788]
mov dword [esp + 0x14], 4
mov dword [edx], 0xc61c3c00
mov eax, dword [edi + 4]
test eax, eax
jne 0x102211b8
cmp dword [edi], eax
jne 0x102211b8
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221172
push edx
push 0x1046d7a0
call fcn.10200690
mov esi, dword [esp + 0x20]
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10221284
cmp dword [edi], eax
jne 0x10221284
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221328
lea eax, [esp + 0x24]
push eax
push 0x1046e830
call fcn.10200690
test al, al
je 0x10221328
jmp 0x10221334
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d7a0
push eax
call esi
sub eax, 0
je 0x10221275
mov ecx, dword [edi]
test ecx, ecx
je 0x10221254
cmp byte [0x11d213c0], 0
je 0x10221229
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d7a0
call fcn.100f6950
test al, al
je 0x10221176
cmp dword [esp + 0x18], 0
jne 0x10221176
lea edx, [ebx + 0x3788]
push edx
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10221176
mov edx, 0x1046d7a0
call fcn.101ff260
test eax, eax
je 0x10221176
cmp word [eax + 2], 4
jne 0x10221176
mov eax, dword [eax + 6]
mov dword [ebx + 0x3788], eax
jmp 0x10221176
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221176
lea edx, [ebx + 0x3788]
push edx
push 0x1046d7a0
call fcn.10200690
jmp 0x10221176
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x3788], eax
jmp 0x10221176
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e830
push eax
call esi
sub eax, 0
je 0x1022132c
mov ecx, dword [edi]
test ecx, ecx
je 0x1022130e
cmp byte [0x11d213c0], 0
je 0x102212e8
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e830
call fcn.100f6950
test al, al
je 0x10221328
cmp dword [esp + 0x18], 0
jne 0x10221328
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
test al, al
je 0x10221328
jmp 0x10221334
mov edx, 0x1046e830
call fcn.101ff260
test eax, eax
je 0x10221328
xor cl, cl
cmp word [eax + 2], 4
jne 0x10221308
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x24], eax
test cl, cl
je 0x10221328
jmp 0x10221334
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221328
lea eax, [esp + 0x24]
push eax
push 0x1046e830
call fcn.10200690
test al, al
jne 0x10221334
xor eax, eax
jmp 0x1022133d
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
xor eax, eax
cmp dword [esp + 0x24], eax
setne al
mov byte [ebx + 0x573c], al
lea esi, [ebx + 0x9c8]
mov dword [esi], 0
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1022137a
cmp dword [edi], eax
jne 0x1022137a
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102213f4
push esi
push 0x1046e840
call fcn.10200690
jmp 0x102213f4
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e840
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102213ee
mov ecx, dword [edi]
test ecx, ecx
je 0x10221362
cmp byte [0x11d213c0], 0
je 0x102213d4
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e840
call fcn.100f6950
test al, al
je 0x102213f4
cmp dword [esp + 0x18], 0
jne 0x102213f4
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x102213f4
mov edx, 0x1046e840
call fcn.101ff260
test eax, eax
je 0x102213f4
cmp word [eax + 2], 4
jne 0x102213f4
mov eax, dword [eax + 6]
jmp 0x102213f2
mov eax, dword [esp + 0xc]
mov dword [esi], eax
lea ecx, [ebx + 0x1158]
call fcn.10200eb0
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10221439
cmp dword [edi], eax
jne 0x10221439
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221545
lea eax, [esp + 0x10]
push eax
push 0x1046d2b0
call fcn.10200690
test al, al
je 0x10221545
jmp 0x102214d9
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d2b0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102214d1
mov ecx, dword [edi]
test ecx, ecx
je 0x10221412
cmp byte [0x11d213c0], 0
je 0x102214a7
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d2b0
call fcn.100f6950
test al, al
je 0x10221545
cmp dword [esp + 0x18], 0
jne 0x10221545
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
test al, al
je 0x10221545
jmp 0x102214d9
mov edx, 0x1046d2b0
call fcn.101ff260
test eax, eax
je 0x10221545
xor cl, cl
cmp word [eax + 2], 4
jne 0x102214cb
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x10], eax
test cl, cl
je 0x10221545
jmp 0x102214d9
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0x10]
and ecx, 0xfffbffff
neg eax
sbb eax, eax
and eax, 0x40000
or ecx, eax
cmp byte [ebx + 0x1238], 0
mov dword [ebx + 4], ecx
je 0x10221545
test ecx, 0x40000
je 0x10221533
cmp byte [ebx + 0x573c], 0
jne 0x10221533
lea eax, [ebx + 0x1239]
mov byte [esp + 0x14], 1
push eax
push ecx
mov ecx, ebx
mov byte [eax], 1
call fcn.10223500
push dword [esp + 0x14]
push ecx
mov ecx, ebx
call fcn.102236c0
jmp 0x10221545
lea eax, [ebx + 0x1239]
mov byte [eax], 0
push eax
push ecx
mov ecx, ebx
call fcn.10223500
cmp dword [0x11d0d8ec], 0
jne 0x10221630
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1022158c
cmp dword [edi], eax
jne 0x1022158c
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1022160c
lea eax, [esp + 0x10]
push eax
push 0x1046e860
call fcn.10200690
jmp 0x1022160c
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e860
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10221604
mov ecx, dword [edi]
test ecx, ecx
je 0x1022156d
cmp byte [0x11d213c0], 0
je 0x102215ea
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e860
call fcn.100f6950
test al, al
je 0x1022160c
cmp dword [esp + 0x18], 0
jne 0x1022160c
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x1022160c
mov edx, 0x1046e860
call fcn.101ff260
test eax, eax
je 0x1022160c
cmp word [eax + 2], 4
jne 0x1022160c
mov eax, dword [eax + 6]
jmp 0x10221608
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
movzx eax, cx
mov dword [0x11d0d8ec], eax
cmp eax, 2
jne 0x10221630
shr ecx, 0x10
mov dword [ebx + 0x53f4], ecx
mov dword [ebx + 0x53f8], 0
mov eax, dword [edi + 4]
lea esi, [ebx + 0x3a80]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10221661
cmp dword [edi], eax
jne 0x10221661
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102216db
push esi
push 0x1046d800
call fcn.10200690
jmp 0x102216db
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d800
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102216d5
mov ecx, dword [edi]
test ecx, ecx
je 0x10221649
cmp byte [0x11d213c0], 0
je 0x102216bb
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d800
call fcn.100f6950
test al, al
je 0x102216db
cmp dword [esp + 0x18], 0
jne 0x102216db
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x102216db
mov edx, 0x1046d800
call fcn.101ff260
test eax, eax
je 0x102216db
cmp word [eax + 2], 4
jne 0x102216db
mov eax, dword [eax + 6]
jmp 0x102216d9
mov eax, dword [esp + 0xc]
mov dword [esi], eax
mov eax, dword [edi + 4]
lea esi, [ebx + 0x3a84]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1022170c
cmp dword [edi], eax
jne 0x1022170c
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221786
push esi
push 0x1046d820
call fcn.10200690
jmp 0x10221786
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d820
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10221780
mov ecx, dword [edi]
test ecx, ecx
je 0x102216f4
cmp byte [0x11d213c0], 0
je 0x10221766
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d820
call fcn.100f6950
test al, al
je 0x10221786
cmp dword [esp + 0x18], 0
jne 0x10221786
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10221786
mov edx, 0x1046d820
call fcn.101ff260
test eax, eax
je 0x10221786
cmp word [eax + 2], 4
jne 0x10221786
mov eax, dword [eax + 6]
jmp 0x10221784
mov eax, dword [esp + 0xc]
mov dword [esi], eax
mov eax, dword [edi + 4]
lea esi, [ebx + 0x3a88]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x102217b7
cmp dword [edi], eax
jne 0x102217b7
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221831
push esi
push 0x1046d980
call fcn.10200690
jmp 0x10221831
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d980
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x1022182b
mov ecx, dword [edi]
test ecx, ecx
je 0x1022179f
cmp byte [0x11d213c0], 0
je 0x10221811
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d980
call fcn.100f6950
test al, al
je 0x10221831
cmp dword [esp + 0x18], 0
jne 0x10221831
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10221831
mov edx, 0x1046d980
call fcn.101ff260
test eax, eax
je 0x10221831
cmp word [eax + 2], 4
jne 0x10221831
mov eax, dword [eax + 6]
jmp 0x1022182f
mov eax, dword [esp + 0xc]
mov dword [esi], eax
mov eax, dword [edi + 4]
lea esi, [ebx + 0x3a8c]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10221862
cmp dword [edi], eax
jne 0x10221862
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102218dc
push esi
push 0x1046d990
call fcn.10200690
jmp 0x102218dc
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d990
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102218d6
mov ecx, dword [edi]
test ecx, ecx
je 0x1022184a
cmp byte [0x11d213c0], 0
je 0x102218bc
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d990
call fcn.100f6950
test al, al
je 0x102218dc
cmp dword [esp + 0x18], 0
jne 0x102218dc
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x102218dc
mov edx, 0x1046d990
call fcn.101ff260
test eax, eax
je 0x102218dc
cmp word [eax + 2], 4
jne 0x102218dc
mov eax, dword [eax + 6]
jmp 0x102218da
mov eax, dword [esp + 0xc]
mov dword [esi], eax
mov eax, dword [edi + 4]
lea esi, [ebx + 0x3bc4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x1022190d
cmp dword [edi], eax
jne 0x1022190d
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221987
push esi
push 0x1046e880
call fcn.10200690
jmp 0x10221987
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e880
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10221981
mov ecx, dword [edi]
test ecx, ecx
je 0x102218f5
cmp byte [0x11d213c0], 0
je 0x10221967
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e880
call fcn.100f6950
test al, al
je 0x10221987
cmp dword [esp + 0x18], 0
jne 0x10221987
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10221987
mov edx, 0x1046e880
call fcn.101ff260
test eax, eax
je 0x10221987
cmp word [eax + 2], 4
jne 0x10221987
mov eax, dword [eax + 6]
jmp 0x10221985
mov eax, dword [esp + 0xc]
mov dword [esi], eax
mov byte [ebx + 0x5730], 0
mov dword [ebx + 0x3990], 0
mov dword [ebx + 0x398c], 0
mov dword [ebx + 0x3994], 0
mov dword [ebx + 0x399c], 0
mov dword [ebx + 0x39a0], 0
mov dword [ebx + 0x3998], 0
mov dword [ebx + 0x39a4], 0
mov dword [ebx + 0x39a8], 0
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10221a20
cmp dword [edi], eax
jne 0x10221a20
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221b32
lea eax, [esp + 0x10]
push eax
push 0x1046e8a0
call fcn.10200690
test al, al
je 0x10221b32
jmp 0x10221ac0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e8a0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10221ab8
mov ecx, dword [edi]
test ecx, ecx
je 0x102219f9
cmp byte [0x11d213c0], 0
je 0x10221a8e
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e8a0
call fcn.100f6950
test al, al
je 0x10221b32
cmp dword [esp + 0x18], 0
jne 0x10221b32
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
test al, al
je 0x10221b32
jmp 0x10221ac0
mov edx, 0x1046e8a0
call fcn.101ff260
test eax, eax
je 0x10221b32
xor cl, cl
cmp word [eax + 2], 4
jne 0x10221ab2
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x10], eax
test cl, cl
je 0x10221b32
jmp 0x10221ac0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
and dword [esp + 0x10], 0xd
je 0x10221b32
lea esi, [ebx + 0x9f8]
mov ecx, esi
call fcn.1023fef0
mov eax, dword [esp + 0x10]
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.1023fef0
mov ecx, dword [esp + 0x14]
xor eax, eax
nop dword [eax]
cmp dword [eax*4 + 0x112258b0], ecx
je 0x10221b01
inc eax
cmp eax, 5
jb 0x10221af0
jmp 0x10221b06
mov dword [esi], eax
mov dword [esi + 4], ecx
mov byte [esi + 0x5d], 0
xorps xmm0, xmm0
mov dword [esi + 8], 0
movups xmmword [esi + 0xc], xmm0
movups xmmword [esi + 0x1c], xmm0
movq qword [esi + 0x2c], xmm0
mov eax, dword [ebx + 0x9fc]
shr eax, 2
and al, 1
mov byte [ebx + 0x3bb0], al
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10221b74
cmp dword [edi], eax
jne 0x10221b74
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221c12
lea eax, [esp + 0x10]
push eax
push 0x1046d520
call fcn.10200690
test al, al
je 0x10221c12
jmp 0x10221c04
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046d520
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10221bfc
mov ecx, dword [edi]
test ecx, ecx
je 0x10221b4d
cmp byte [0x11d213c0], 0
je 0x10221bd6
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046d520
call fcn.100f6950
test al, al
je 0x10221c12
cmp dword [esp + 0x18], 0
jne 0x10221c12
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
test al, al
je 0x10221c12
jmp 0x10221c04
mov edx, 0x1046d520
call fcn.101ff260
test eax, eax
je 0x10221c12
xor cl, cl
cmp word [eax + 2], 4
jne 0x10221bf6
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x10], eax
test cl, cl
je 0x10221c12
jmp 0x10221c04
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
je 0x10221c12
or dword [ebx + 4], 0x8000
push 0x80000000
push 0x81
push edi
lea ecx, [ebx + 0x3ecc]
call fcn.10201040
cmp dword [ebx + 0xec], 1
jne 0x10221d24
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10221c6f
cmp dword [edi], eax
jne 0x10221c6f
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221d24
lea eax, [esp + 0x10]
push eax
push 0x1046e8c0
call fcn.10200690
jmp 0x10221d07
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e8c0
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x10221cff
mov ecx, dword [edi]
test ecx, ecx
je 0x10221ce7
cmp byte [0x11d213c0], 0
je 0x10221ccd
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e8c0
call fcn.100f6950
test al, al
je 0x10221d07
cmp dword [esp + 0x18], 0
jne 0x10221d07
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10221d07
mov edx, 0x1046e8c0
call fcn.101ff260
test eax, eax
je 0x10221d07
cmp word [eax + 2], 4
jne 0x10221d07
mov eax, dword [eax + 6]
jmp 0x10221d03
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221d07
lea eax, [esp + 0x10]
push eax
push 0x1046e8c0
call fcn.10200690
jmp 0x10221d07
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x10221d24
test eax, eax
mov ecx, 1
cmove eax, ecx
mov dword [esp + 0x10], eax
mov dword [ebx + 0x53ac], eax
mov ecx, ebx
call fcn.10222b00
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10221dbd
cmp dword [edi], eax
jne 0x10221dbd
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221d5c
lea eax, [esp + 0x10]
push eax
push 0x1046e8e0
call fcn.10200690
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov al, byte [ebx + 0xac]
neg ecx
mov dword [esp + 0x10], 0
sbb cl, cl
mov dword [esp + 0x14], 4
and al, 0xf7
and cl, 8
or cl, al
mov byte [ebx + 0xac], cl
mov eax, dword [edi + 4]
test eax, eax
jne 0x10221e81
cmp dword [edi], eax
jne 0x10221e81
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221f03
lea eax, [esp + 0x10]
push eax
push 0x1046e8f0
call fcn.10200690
jmp 0x10221f03
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e8e0
push eax
call esi
sub eax, 0
je 0x10221e74
mov ecx, dword [edi]
test ecx, ecx
je 0x10221e55
cmp byte [0x11d213c0], 0
je 0x10221e2c
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e8e0
call fcn.100f6950
test al, al
je 0x10221d60
cmp dword [esp + 0x18], 0
jne 0x10221d60
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10221d60
mov edx, 0x1046e8e0
call fcn.101ff260
test eax, eax
je 0x10221d60
cmp word [eax + 2], 4
jne 0x10221d60
mov eax, dword [eax + 6]
mov dword [esp + 0x10], eax
jmp 0x10221d60
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221d60
lea eax, [esp + 0x10]
push eax
push 0x1046e8e0
call fcn.10200690
jmp 0x10221d60
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
jmp 0x10221d60
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e8f0
push eax
call esi
sub eax, 0
je 0x10221efb
mov ecx, dword [edi]
test ecx, ecx
je 0x10221d9e
cmp byte [0x11d213c0], 0
je 0x10221ee1
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e8f0
call fcn.100f6950
test al, al
je 0x10221f03
cmp dword [esp + 0x18], 0
jne 0x10221f03
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10221f03
mov edx, 0x1046e8f0
call fcn.101ff260
test eax, eax
je 0x10221f03
cmp word [eax + 2], 4
jne 0x10221f03
mov eax, dword [eax + 6]
jmp 0x10221eff
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
mov al, byte [ebx + 0xac]
neg ecx
sbb cl, cl
and al, 0xdf
and cl, 0x20
or cl, al
mov byte [ebx + 0xac], cl
test cl, 0x20
je 0x10221f2c
or cl, 8
mov byte [ebx + 0xac], cl
mov eax, dword [edi + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
test eax, eax
jne 0x10221f66
cmp dword [edi], eax
jne 0x10221f66
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10221fe4
lea eax, [esp + 0x10]
push eax
push 0x1046e910
call fcn.10200690
jmp 0x10221fe4
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e910
push eax
call esi
sub eax, 0
je 0x10221fdc
mov ecx, dword [edi]
test ecx, ecx
je 0x10221f47
cmp byte [0x11d213c0], 0
je 0x10221fc2
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e910
call fcn.100f6950
test al, al
je 0x10221fe4
cmp dword [esp + 0x18], 0
jne 0x10221fe4
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x10221fe4
mov edx, 0x1046e910
call fcn.101ff260
test eax, eax
je 0x10221fe4
cmp word [eax + 2], 4
jne 0x10221fe4
mov eax, dword [eax + 6]
jmp 0x10221fe0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
mov al, byte [ebx + 0xac]
neg ecx
sbb cl, cl
and al, 0xfb
and cl, 4
or cl, al
mov byte [ebx + 0xac], cl
test cl, 4
je 0x1022200d
or cl, 8
mov byte [ebx + 0xac], cl
lea esi, [ebx + 0x3fc4]
mov dword [esp + 0x14], 4
mov dword [esi], 0x356c3924
mov eax, dword [edi + 4]
test eax, eax
jne 0x10222047
cmp dword [edi], eax
jne 0x10222047
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102220c1
push esi
push 0x1046e930
call fcn.10200690
jmp 0x102220c1
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e930
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102220bb
mov ecx, dword [edi]
test ecx, ecx
je 0x1022202c
cmp byte [0x11d213c0], 0
je 0x102220a1
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e930
call fcn.100f6950
test al, al
je 0x102220c1
cmp dword [esp + 0x18], 0
jne 0x102220c1
push esi
push dword [esp + 0x20]
call fcn.100f76e0
jmp 0x102220c1
mov edx, 0x1046e930
call fcn.101ff260
test eax, eax
je 0x102220c1
cmp word [eax + 2], 4
jne 0x102220c1
mov eax, dword [eax + 6]
jmp 0x102220bf
mov eax, dword [esp + 0xc]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 4
test eax, eax
jne 0x102220ff
cmp dword [edi], eax
jne 0x102220ff
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102221ab
lea eax, [esp + 0x24]
push eax
push 0x1046e940
call fcn.10200690
mov esi, dword [esp + 0x20]
test al, al
je 0x102221af
jmp 0x102221bb
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046e940
push eax
call esi
sub eax, 0
je 0x102221b3
mov ecx, dword [edi]
test ecx, ecx
je 0x1022218d
cmp byte [0x11d213c0], 0
je 0x10222167
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0x1046e940
call fcn.100f6950
test al, al
je 0x102221af
cmp dword [esp + 0x18], 0
jne 0x102221af
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x20]
call fcn.100f76e0
test al, al
je 0x102221af
jmp 0x102221bb
mov edx, 0x1046e940
call fcn.101ff260
test eax, eax
je 0x102221af
xor cl, cl
cmp word [eax + 2], 4
jne 0x10222187
mov eax, dword [eax + 6]
mov cl, 1
mov dword [esp + 0x24], eax
test cl, cl
je 0x102221af
jmp 0x102221bb
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102221af
lea eax, [esp + 0x24]
push eax
push 0x1046e940
call fcn.10200690
test al, al
jne 0x102221bb
xor eax, eax
jmp 0x102221c4
mov esi, dword [esp + 0x20]
xor eax, eax
jmp 0x102221c4
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
xor eax, eax
cmp dword [esp + 0x24], eax
setne al
mov byte [ebx + 0x3724], al
test al, al
je 0x102221d5
or byte [ebx + 0xac], 8
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor eax, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0xc], ecx
push eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x78]
push 0x1046e960
push eax
mov dword [esp + 0x28], 0x100
call fcn.100086a0
mov eax, dword [edi + 4]
add esp, 0xc
mov dword [esp + 0x24], 0x100
test eax, eax
jne 0x10222221
cmp dword [edi], eax
je 0x102222df
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x18c]
push ecx
lea ecx, [esp + 0x54]
push ecx
push 0
lea ecx, [esp + 0x84]
push ecx
push eax
call esi
sub eax, 0
je 0x10222309
mov ecx, dword [edi]
test ecx, ecx
je 0x102222df
cmp byte [0x11d213c0], 0
je 0x1022229b
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.100f6950
test al, al
je 0x102224a2
cmp dword [esp + 0x3c], 2
jne 0x102224a2
push 0x100
lea eax, [esp + 0x18c]
push eax
push dword [esp + 0x48]
call fcn.100f77d0
jmp 0x10222301
lea edx, [esp + 0x74]
call fcn.101ff260
mov ecx, eax
test ecx, ecx
je 0x102224a2
xor al, al
cmp word [ecx + 2], 1
jne 0x10222301
movzx edx, word [ecx + 4]
cmp edx, 0x100
jae 0x10222301
lea eax, [edx + 1]
push eax
lea eax, [ecx + 6]
push eax
lea eax, [esp + 0x190]
push eax
call fcn.1043a5d0
add esp, 0xc
mov al, 1
jmp 0x10222301
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x102224a2
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18c]
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.102007b0
test al, al
je 0x102224a2
push 0x10
push 0xc
call fcn.10434a32
mov esi, eax
add esp, 8
mov dword [esp + 0x28], esi
test esi, esi
je 0x102224a2
lea eax, [esp + 0x44]
push eax
lea ecx, [esi + 4]
push ecx
push esi
lea eax, [esp + 0x194]
push 0x1046e970
push eax
call fcn.1003a0d0
add esp, 0x14
cmp eax, 3
jne 0x1022235c
mov eax, dword [esp + 0x44]
sub eax, 0
je 0x1022237c
sub eax, 1
je 0x10222375
mov dword [esi + 8], 0
push 0xc
push esi
call fcn.1045088a
mov eax, dword [esp + 0x20]
add esp, 8
mov esi, dword [esp + 0x20]
inc eax
jmp 0x102221eb
mov eax, 2
jmp 0x10222381
mov eax, 1
mov dword [esi + 8], eax
lea esi, [ebx + 0x1324]
push esi
call dword [esp + 0x18]
cmp dword [ebx + 0x1314], 0
jne 0x102223cb
push 0x20
call fcn.10450898
add esp, 4
mov dword [ebx + 0x1314], eax
test eax, eax
je 0x10222409
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [ebx + 0x1318], 8
lea eax, [ebx + 0x131c]
jmp 0x10222476
mov ecx, dword [ebx + 0x1318]
lea eax, [ebx + 0x131c]
mov dword [esp + 0x24], eax
cmp dword [eax], ecx
jne 0x1022247a
lea eax, [ecx + 8]
mov edx, 4
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x1022241c
push esi
call dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
inc eax
jmp 0x102221eb
mov eax, dword [ebx + 0x1318]
lea eax, [eax*4 + 0x20]
push eax
push 0
push ecx
call fcn.10425c00
mov eax, dword [ebx + 0x1318]
add esp, 0xc
shl eax, 2
push eax
push dword [ebx + 0x1314]
push dword [esp + 0x24]
call fcn.10425d60
add esp, 0xc
push 4
push dword [ebx + 0x1314]
call fcn.1045088a
mov eax, dword [esp + 0x24]
add esp, 8
add dword [ebx + 0x1318], 8
mov dword [ebx + 0x1314], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov ecx, dword [eax]
mov eax, dword [ebx + 0x1314]
mov edx, dword [esp + 0x28]
push esi
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x28]
inc dword [eax]
call dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
inc eax
jmp 0x102221eb
xor eax, eax
push eax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x54]
push 0x1046e980
push eax
mov dword [esp + 0x24], 0x100
call fcn.100086a0
mov eax, dword [edi + 4]
add esp, 0xc
mov dword [esp + 0x28], 0x100
test eax, eax
jne 0x102224da
cmp dword [edi], eax
je 0x10222597
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0x54]
push ecx
push 0
lea ecx, [esp + 0x60]
push ecx
push eax
call dword [esp + 0x38]
sub eax, 0
je 0x102225c1
mov ecx, dword [edi]
test ecx, ecx
je 0x10222597
cmp byte [0x11d213c0], 0
je 0x10222553
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.100f6950
test al, al
je 0x1022274e
cmp dword [esp + 0x44], 2
jne 0x1022274e
push 0x100
lea eax, [esp + 0x8c]
push eax
push dword [esp + 0x48]
call fcn.100f77d0
jmp 0x102225b9
lea edx, [esp + 0x50]
call fcn.101ff260
mov ecx, eax
test ecx, ecx
je 0x1022274e
xor al, al
cmp word [ecx + 2], 1
jne 0x102225b9
movzx edx, word [ecx + 4]
cmp edx, 0x100
jae 0x102225b9
lea eax, [edx + 1]
push eax
lea eax, [ecx + 6]
push eax
lea eax, [esp + 0x90]
push eax
call fcn.1043a5d0
add esp, 0xc
mov al, 1
jmp 0x102225b9
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1022274e
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.102007b0
test al, al
je 0x1022274e
push 0x10
push 0xc
call fcn.10434a32
mov esi, eax
add esp, 8
mov dword [esp + 0x28], esi
test esi, esi
je 0x1022274e
lea eax, [esp + 0x3c]
push eax
lea ecx, [esi + 4]
push ecx
push esi
lea eax, [esp + 0x94]
push 0x1046e970
push eax
call fcn.1003a0d0
add esp, 0x14
cmp eax, 3
jne 0x10222614
mov eax, dword [esp + 0x3c]
sub eax, 0
je 0x10222630
sub eax, 1
je 0x10222629
mov dword [esi + 8], 0
push 0xc
push esi
call fcn.1045088a
mov eax, dword [esp + 0x24]
add esp, 8
inc eax
jmp 0x102224a4
mov eax, 2
jmp 0x10222635
mov eax, 1
mov dword [esi + 8], eax
lea esi, [ebx + 0x1378]
push esi
call dword [esp + 0x18]
cmp dword [ebx + 0x1368], 0
jne 0x1022267f
push 0x20
call fcn.10450898
add esp, 4
mov dword [ebx + 0x1368], eax
test eax, eax
je 0x102226bd
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [ebx + 0x136c], 8
lea eax, [ebx + 0x1370]
jmp 0x10222726
mov ecx, dword [ebx + 0x136c]
lea eax, [ebx + 0x1370]
mov dword [esp + 0x24], eax
cmp dword [eax], ecx
jne 0x1022272a
lea eax, [ecx + 8]
mov edx, 4
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
mov ecx, eax
add esp, 4
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x102226cc
push esi
call dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
inc eax
jmp 0x102224a4
mov eax, dword [ebx + 0x136c]
lea eax, [eax*4 + 0x20]
push eax
push 0
push ecx
call fcn.10425c00
mov eax, dword [ebx + 0x136c]
add esp, 0xc
shl eax, 2
push eax
push dword [ebx + 0x1368]
push dword [esp + 0x20]
call fcn.10425d60
add esp, 0xc
push 4
push dword [ebx + 0x1368]
call fcn.1045088a
mov eax, dword [esp + 0x20]
add esp, 8
add dword [ebx + 0x136c], 8
mov dword [ebx + 0x1368], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov ecx, dword [eax]
mov eax, dword [ebx + 0x1368]
mov edx, dword [esp + 0x28]
push esi
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x28]
inc dword [eax]
call dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
inc eax
jmp 0x102224a4
xor cl, cl
cmp dword [edi + 4], 0
je 0x1022276f
cmp dword [edi], 0
jne 0x1022278e
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1022276b
call fcn.10200a40
test al, al
jne 0x1022278e
xor cl, cl
jmp 0x102227cb
mov eax, dword [edi + 0xc]
test eax, eax
je 0x10222789
mov ecx, eax
call fcn.10200a40
mov cl, al
mov dword [esp + 0x24], ecx
test cl, cl
je 0x102227cb
jmp 0x10222797
cmp dword [edi], 0
je 0x102227cb
mov ecx, 1
mov dword [esp + 0x24], ecx
cmp byte [0x11d213c0], 0
je 0x102227cb
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push 0x70e46f20
call fcn.100f76e0
mov ecx, dword [esp + 0x24]
test al, al
je 0x102227cb
xor eax, eax
movzx ecx, cl
cmp dword [esp + 0x14], eax
cmove ecx, eax
mov al, byte [ebx + 0xb1]
shl cl, 5
and al, 0xdf
or cl, al
mov byte [ebx + 0xb1], cl
test cl, 0x20
jne 0x10222822
cmp byte [esp + 0x2e], 0
je 0x10222822
cmp dword [0x11c4d988], 0x10234530
jne 0x10222822
mov eax, dword [0x11d0c5b8]
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x10]
test byte [eax + 0xd58c], 2
jne 0x10222822
or byte [ebx + 0xb0], 0x80
mov dword [ebx + 0xc4], 0
mov ecx, edi
call fcn.102000a0
mov eax, dword [esp + 0x30]
test al, 4
je 0x10222865
mov ecx, dword [0x11d0c5b8]
mov edx, dword [esp + 0x34]
cmp byte [esp + 0x2e], 0
je 0x10222865
mov eax, dword [edx + ecx*4]
mov eax, dword [eax + 0x10]
test byte [eax + 0xd58c], 2
jne 0x10222865
or byte [ebx + 0xb0], 0x80
mov dword [ebx + 0xc4], 0
mov cl, byte [ebx + 0xa4]
mov ebx, dword [esp + 0x38]
and cl, 0x7f
mov esi, dword [esp + 0x48]
mov al, bl
shl al, 7
mov edx, ebx
or cl, al
shr edx, 0x1d
mov eax, ebx
shr eax, 4
and al, 1
mov byte [esi + 0xa4], cl
mov ecx, ebx
shr ecx, 6
add cl, cl
or cl, al
mov eax, ebx
shr eax, 3
and al, 1
shl cl, 3
or cl, al
mov eax, ebx
shr eax, 5
add cl, cl
and al, 1
or cl, al
mov eax, ebx
shr eax, 2
add cl, cl
and al, 1
or cl, al
mov eax, ebx
shr eax, 1
add cl, cl
and al, 1
or cl, al
mov al, byte [esi + 0xa5]
and al, 0x30
or cl, al
mov eax, ebx
shr eax, 0x16
and al, 1
mov byte [esi + 0xa5], cl
mov ecx, ebx
shr ecx, 0x17
add cl, cl
or cl, al
mov eax, ebx
shr eax, 0x14
add cl, cl
and al, 1
or cl, al
mov eax, ebx
shr eax, 0xc
add cl, cl
and al, 1
or cl, al
mov eax, ebx
shr eax, 0xb
add cl, cl
and al, 1
or cl, al
mov eax, ebx
shr eax, 0xa
add cl, cl
and al, 1
or cl, al
mov eax, ebx
shr eax, 7
add al, al
shl cl, 2
not al
and al, 2
or cl, al
mov eax, ebx
shr eax, 9
and al, 1
or cl, al
shl dl, 3
mov byte [esi + 0xa6], cl
mov eax, ebx
mov ecx, ebx
shr eax, 0x11
and al, 1
shr ecx, 0x1f
or dl, al
add cl, cl
add dl, dl
mov eax, ebx
shr eax, 0x10
and al, 1
or dl, al
mov eax, ebx
shr eax, 0xf
add dl, dl
and al, 1
or dl, al
mov eax, ebx
shr eax, 0xe
add dl, dl
and al, 1
or dl, al
mov eax, ebx
shr eax, 0x1e
add dl, dl
and al, 1
or cl, al
mov eax, ebx
shr eax, 0xd
and al, 1
shl cl, 5
or cl, al
shr ebx, 0x18
and cl, 0x7f
and bl, 1
or dl, cl
mov byte [esi + 0xa7], dl
mov edx, dword [esp + 0x30]
mov al, dl
and al, 1
mov ecx, edx
add al, al
shr ecx, 3
or bl, al
shl cl, 6
mov al, byte [esi + 0xa8]
and al, 0xfc
or bl, al
mov eax, edx
shr eax, 1
shl al, 5
xor al, byte [esi + 0xb3]
and al, 0x20
mov byte [esi + 0xa8], bl
xor byte [esi + 0xb3], al
mov al, byte [esi + 0xb3]
xor cl, al
and cl, 0x40
xor cl, al
mov eax, edx
shr eax, 4
xor al, byte [esi + 0xb4]
mov byte [esi + 0xb3], cl
and al, 1
xor byte [esi + 0xb4], al
mov ecx, edx
shr ecx, 5
mov eax, edx
shl cl, 3
xor cl, byte [esi + 0xa9]
shr eax, 6
and cl, 8
xor cl, byte [esi + 0xa9]
shl al, 4
xor al, cl
and al, 0x10
xor cl, al
mov eax, edx
shr eax, 7
shl al, 5
xor al, cl
and al, 0x20
xor cl, al
mov eax, edx
shr eax, 8
shl al, 6
xor al, cl
and al, 0x40
xor cl, al
mov eax, edx
shr eax, 0xb
add al, al
xor al, byte [esi + 0xaa]
and al, 2
xor byte [esi + 0xaa], al
cmp byte [esi + 0x59c5], 0
je 0x10222a4e
or cl, 0x80
jmp 0x10222a59
shr edx, 0xa
and cl, 0x7f
shl dl, 7
or cl, dl
mov byte [esi + 0xa9], cl
mov eax, dword [esi + 0x53c8]
test eax, eax
je 0x10222a8d
shr cl, 5
and cl, 1
mov byte [eax + 0xa8], cl
mov cl, byte [esi + 0xa9]
mov eax, dword [esi + 0x53c8]
shr cl, 6
and cl, 1
mov byte [eax + 0xa9], cl
mov ecx, esi
mov dword [esi + 0x3784], 0xc61c3c00
call fcn.10222b90
lea eax, [esi + 0x104c]
push 0x1046e1e0
push eax
call fcn.10425570
add esp, 8
test eax, eax
je 0x10222ad3
cmp dword [0x11c4d988], 0x10234530
jne 0x10222ad3
or byte [esi + 0xb0], 0x80
mov dword [esi + 0xc4], 0
mov ecx, dword [esp + 0x28c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1045066c
mov esp, ebp
pop ebp
ret