Function at 0x101c4af1
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xbc
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0x60
xor ebx, ebx
lea eax, [esp + 0x2c]
push ebx
push eax
call sub.msvcrt.dll_memset
mov eax, dword [esi + 0x574]
add esp, 0xc
mov dword [esp + 0xb8], ebx
mov edi, 0x10096dd4
cmp eax, 5
ja case.default.0x101c3811
jmp dword [eax*4 + 0x101c5994]
mov ecx, 0x10096c9c
mov edx, 0x10096e30
mov dword [esp + 0x8c], 0x10096fb0
mov dword [esp + 0x20], 0x10096f40
mov dword [esp + 0x24], 0x10096e8c
mov dword [esp + 0x98], edi
mov dword [esp + 0xb0], 0x10096f00
mov dword [esp + 0x94], edi
mov dword [esp + 0xc0], edi
jmp 0x101c3a9e
mov eax, dword [esi + 0x644]
sub eax, 3
je 0x101c38ab
sub eax, 1
je 0x101c3891
sub eax, 1
jne 0x101c38c5
mov ecx, 0x10096d10
mov dword [esp + 0x20], 0x10096f74
mov dword [esp + 0xb0], 0x10096f1c
jmp 0x101c38cc
mov ecx, 0x10096ce4
mov dword [esp + 0x20], 0x10096f60
mov dword [esp + 0xb0], 0x10096f0c
jmp 0x101c38cc
mov ecx, 0x10096cbc
mov dword [esp + 0x20], 0x10096f50
mov dword [esp + 0xb0], 0x10096f00
jmp 0x101c38cc
mov ecx, dword [esp + 0x88]
mov edx, 0x10096e30
mov dword [esp + 0x24], 0x10096e8c
mov dword [esp + 0x8c], 0x10096fb0
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], edi
mov dword [esp + 0xc0], edi
jmp 0x101c3a9e
mov ecx, 0x10096d40
mov edx, 0x10096e30
mov dword [esp + 0x8c], 0x10096fb0
mov dword [esp + 0x20], 0x10096f8c
mov dword [esp + 0x24], 0x10096e8c
mov dword [esp + 0x98], edi
mov dword [esp + 0xb0], 0x10096f30
mov dword [esp + 0x94], edi
mov dword [esp + 0xc0], edi
jmp 0x101c3a9e
mov ecx, 0x10096d6c
mov edx, 0x10096e30
mov dword [esp + 0x8c], 0x10096fb0
mov dword [esp + 0x20], 0x10096fa0
mov dword [esp + 0x24], 0x10096e8c
mov dword [esp + 0x98], edi
mov dword [esp + 0xb0], 0x10096f00
mov dword [esp + 0x94], edi
mov dword [esp + 0xc0], edi
jmp 0x101c3a9e
mov ecx, 0x10096d94
cmp byte [esi + 0x1b], bl
je 0x101c39b6
mov edx, 0x10096e6c
mov dword [esp + 0x24], 0x10096ed4
mov dword [esp + 0x8c], 0x10096fd4
jmp 0x101c39ed
cmp byte [esi + 0x1a], bl
je 0x101c39d5
mov edx, 0x10096e54
mov dword [esp + 0x24], 0x10096eb8
mov dword [esp + 0x8c], 0x10096fc4
jmp 0x101c39ed
mov edx, 0x10096e40
mov dword [esp + 0x24], 0x10096ea0
mov dword [esp + 0x8c], 0x10096fb8
mov eax, 0x10096e08
mov dword [esp + 0x20], 0x10096f40
mov dword [esp + 0x88], 0x10096f48
mov dword [esp + 0x98], 0x10096db8
mov dword [esp + 0xb0], 0x10096f00
mov dword [esp + 0xb8], 0x10096df8
mov dword [esp + 0x94], eax
mov dword [esp + 0xc0], eax
jmp 0x101c3aa9
mov ecx, 0x10096fec
mov edx, 0x10097018
mov dword [esp + 0x8c], 0x10096fb0
mov dword [esp + 0x20], 0x10097038
mov dword [esp + 0x24], 0x10097024
mov dword [esp + 0x98], edi
mov dword [esp + 0xb0], 0x10097034
mov dword [esp + 0xb8], 0x10096e24
mov dword [esp + 0x94], 0x10096e14
mov dword [esp + 0xc0], 0x10096e08
jmp 0x101c3a9e
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x88], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0xbc], eax
mov al, byte [esi + 0x1b]
xor edi, edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], ebx
mov byte [esp + 0x93], 1
mov byte [esp + 0x17], al
cmp al, bl
je 0x101c3adb
mov dword [esp + 0xb4], ebx
xor eax, eax
jmp 0x101c3aeb
mov dword [esp + 0xb4], 0x20000
mov eax, 0x40000000
mov esi, dword [esp + 0xbc]
cmp esi, 0xce
ja case.0x101c3b05.53
movzx esi, byte [esi + 0x101c5ad8]
jmp dword [esi*4 + 0x101c59ac]
mov dword [esp + 0x10], ebx
jmp case.0x101c3b05.53
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0x40000040
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], 0x508
jmp 0x101c4bce
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0x40000040
mov dword [esp + 0x28], 0x10096de4
mov dword [esp + 0x30], 0x20504
jmp 0x101c4bce
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0x40000040
mov dword [esp + 0x28], 0x10096dc4
mov dword [esp + 0x30], 0x20508
jmp 0x101c4bce
mov dword [esp + 0x38], ecx
jmp 0x101c4ba7
or eax, 0x40
mov dword [esp + 0x38], ecx
jmp 0x101c4baa
or eax, 0x40
mov dword [esp + 0x10], 2
mov dword [esp + 0x18], eax
xor edi, edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x28], edx
mov dword [esp + 0x44], ebx
jmp 0x101c4bd0
or eax, 0x40
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x490
jmp 0x101c4bb2
mov dword [esp + 0x18], 0x40000040
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], 8
mov dword [esp + 0x38], 0x10096de4
mov dword [esp + 0x40], 0x504
jmp 0x101c4bc2
mov ecx, eax
or ecx, 0x40
xor edi, edi
mov dword [esp + 0x10], 2
mov dword [esp + 0x18], ecx
cmp byte [esp + 0x17], bl
je 0x101c3c2f
or eax, 0x8000000
or dword [esp + 0x18], eax
mov byte [esp + 0x93], bl
or edi, ebx
mov ecx, dword [esp + 0xc0]
jmp 0x101c3ba6
or eax, 0x20
mov dword [esp + 0x18], eax
mov eax, 0x290
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], 3
mov dword [esp + 0x28], edx
mov dword [esp + 0x54], ebx
jmp 0x101c4bca
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
or eax, 0x40
mov dword [esp + 0x18], eax
mov eax, 0x510
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], 3
xor edi, edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x54], ebx
jmp 0x101c4bd0
or eax, 0x40
jmp 0x101c3c3e
or eax, 0x40
mov dword [esp + 0x18], eax
xor edi, edi
mov eax, 0x510
mov dword [esp + 0x10], 3
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
cmp byte [esp + 0x17], bl
jne 0x101c3cf5
mov eax, 0x508
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
jmp case.0x101c3b05.53
or eax, 0x40
mov dword [esp + 0x18], eax
mov eax, 0x490
jmp 0x101c3c47
or eax, 0x840
xor edi, edi
mov dword [esp + 0x10], 3
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c3d38
or dword [esp + 0x18], 0x8000000
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], 0x10096dd4
mov dword [esp + 0x50], 0x20000510
mov dword [esp + 0x54], ebx
jmp 0x101c4bd0
or eax, 0x1840
xor edi, edi
mov dword [esp + 0x10], 4
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c3d8e
or dword [esp + 0x18], 0x8000000
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], 0x10096dd4
mov dword [esp + 0x50], 0x20000510
mov dword [esp + 0x54], ebx
cmp byte [esi + 0x1a], bl
jne 0x101c3dcf
mov ecx, 0x10096dc4
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], 0x20508
mov dword [esp + 0x64], ebx
jmp 0x101c4bd7
or eax, 0x2040
xor edi, edi
mov dword [esp + 0x10], 3
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c3e0c
or dword [esp + 0x18], 0x8000000
mov byte [esp + 0x93], bl
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x508
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], 0x510
mov dword [esp + 0x54], ebx
jmp 0x101c4bd0
mov edx, dword [esp + 0x24]
or eax, 0x20
mov dword [esp + 0x18], eax
mov eax, 0x12
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x50], 0x290
jmp 0x101c3c57
or eax, 0x40
mov dword [esp + 0x18], eax
mov eax, 0x490
mov dword [esp + 0x10], 4
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
jmp 0x101c4bca
mov edx, dword [esp + 0x24]
or eax, 0x40
mov dword [esp + 0x18], eax
mov eax, 0x12
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], eax
mov eax, 0x490
mov dword [esp + 0x10], 4
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
jmp 0x101c4bca
or eax, 0x20
mov dword [esp + 0x18], eax
mov eax, 0x290
mov dword [esp + 0x10], 4
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
jmp 0x101c4bca
or eax, 0x20
mov dword [esp + 0x18], eax
mov eax, 0x290
mov dword [esp + 0x10], 4
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
jmp 0x101c4bca
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
or eax, 0x40
mov dword [esp + 0x18], eax
mov eax, 0x12
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], eax
mov eax, 0x510
xor edi, edi
mov dword [esp + 0x10], 4
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x64], ebx
jmp 0x101c4bd0
or eax, 0x40
mov dword [esp + 0x18], eax
mov eax, 0x510
mov dword [esp + 0x10], 4
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
jmp 0x101c4bca
or eax, 0x40
mov dword [esp + 0x18], eax
mov eax, 0x510
mov dword [esp + 0x10], 5
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ebx
jmp 0x101c4bca
or eax, 0x40
mov dword [esp + 0x18], eax
mov eax, 0x12
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], eax
mov eax, 0x510
mov dword [esp + 0x10], 5
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ebx
jmp 0x101c4bca
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x24]
jmp 0x101c3f8e
or eax, 0x840
xor edi, edi
mov dword [esp + 0x10], 4
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c40ec
or dword [esp + 0x18], 0x8000000
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x48], 0x10096dd4
mov dword [esp + 0x50], 0x20000510
mov dword [esp + 0x58], 0x10096dcc
or eax, 0x504
jmp 0x101c3fc1
or eax, 0x840
xor edi, edi
mov dword [esp + 0x10], 5
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c414e
or dword [esp + 0x18], 0x8000000
mov eax, dword [esp + 0xb4]
or eax, 0x504
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], 0x10096dd4
mov dword [esp + 0x50], 0x20000510
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 0x10096dcc
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], 0x508
mov dword [esp + 0x74], ebx
jmp 0x101c4bd0
or eax, 0x840
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x17]
xor edi, edi
mov dword [esp + 0x10], 4
cmp al, bl
je 0x101c41d2
or dword [esp + 0x18], 0x8000000
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xb4]
or ecx, 0x500
xor esi, esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], 0x10096dd4
mov dword [esp + 0x50], 0x20000510
mov dword [esp + 0x54], ebx
cmp al, bl
je 0x101c421e
or ecx, 8
jmp 0x101c4224
or ecx, 0x4000
mov dword [esp + 0x58], 0x10096dcc
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], esi
jmp case.0x101c3b05.53
or eax, 0x840
xor edi, edi
mov dword [esp + 0x10], 5
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c425a
or dword [esp + 0x18], 0x8000000
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x28], edx
mov edx, 0x508
or eax, edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x48], 0x10096dd4
mov dword [esp + 0x50], 0x20000510
mov dword [esp + 0x58], 0x10096dcc
mov dword [esp + 0x60], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ebx
jmp 0x101c4bd0
or eax, 0x40
xor edi, edi
mov dword [esp + 0x10], 5
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c42d8
or dword [esp + 0x18], 0x8000000
mov eax, 0x510
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xb4]
or eax, 0x508
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 0x10096dd4
mov dword [esp + 0x60], 0x20000510
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], 0x10096dcc
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ebx
jmp 0x101c4bd0
or eax, 0x40
xor edi, edi
mov dword [esp + 0x10], 6
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c4355
or dword [esp + 0x18], 0x8000000
mov eax, 0x510
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x28], edx
mov edx, 0x508
or eax, edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 0x10096dd4
mov dword [esp + 0x60], 0x20000510
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], 0x10096dcc
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ebx
jmp 0x101c4bd0
or eax, 0x40
xor edi, edi
mov dword [esp + 0x10], 2
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c43e6
or dword [esp + 0x18], 0x8000000
mov eax, dword [esp + 0x98]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], 0x20510
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x28], edx
mov dword [esp + 0x44], ebx
jmp 0x101c4bd0
or eax, 0x40
xor edi, edi
mov dword [esp + 0x10], 3
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c442d
or dword [esp + 0x18], 0x8000000
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], 0x20510
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], 0x508
mov dword [esp + 0x54], ebx
jmp 0x101c4bd0
or eax, 0x840
xor edi, edi
mov dword [esp + 0x10], 5
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c4486
or dword [esp + 0x18], 0x8000000
mov eax, dword [esp + 0xb4]
or eax, 0x504
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], 0x10096dd4
mov dword [esp + 0x50], 0x20004500
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 0x10096dcc
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], 0x508
mov dword [esp + 0x74], ebx
jmp 0x101c4bd0
or eax, 0x840
xor edi, edi
mov dword [esp + 0x10], 6
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c4508
or dword [esp + 0x18], 0x8000000
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xb4]
mov eax, 0x510
or edx, 0x504
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], 0x10096dd4
mov dword [esp + 0x50], 0x20000510
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 0x10096dcc
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ebx
jmp 0x101c4bd0
mov dword [esp + 0x18], 0x18000
xor edi, edi
mov dword [esp + 0x10], 1
mov dword [esp + 0x28], 0x10096dd4
mov dword [esp + 0x30], 0x20504
jmp 0x101c4bd0
mov dword [esp + 0x10], 1
mov dword [esp + 0x28], 0x10096ddc
mov dword [esp + 0x30], 0xa0510
jmp 0x101c4bd0
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0x40000
mov dword [esp + 0x28], 0x10096dcc
mov dword [esp + 0x30], 0x20504
jmp 0x101c4bce
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x10], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], 0x20512
jmp 0x101c4bd0
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], 0x100000
xor edi, edi
jmp case.0x101c3b05.53
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], 0x200000
xor edi, edi
jmp case.0x101c3b05.53
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], 0x400000
xor edi, edi
jmp case.0x101c3b05.53
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x10], 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], 0x20512
jmp 0x101c4bd0
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0x800000
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x20512
jmp 0x101c4bce
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0x1000000
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], 0x20512
jmp 0x101c4bce
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0x2000000
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], 0x20512
jmp 0x101c4bce
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0x2800000
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x20512
jmp 0x101c4bce
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0x3000000
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], 0x20512
jmp 0x101c4bce
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x10], 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], 0x20512
jmp 0x101c4bd0
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0x800000
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x20512
jmp 0x101c4bce
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0x1000000
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], 0x20512
jmp 0x101c4bce
mov dword [esp + 0x10], 1
mov dword [esp + 0x28], 0x10096ef8
mov dword [esp + 0x30], 0x20000
jmp 0x101c4bd0
mov dword [esp + 0x10], 1
mov dword [esp + 0x28], 0x10096df0
mov dword [esp + 0x30], 4
jmp 0x101c4bd0
mov dword [esp + 0x18], 0x18000
xor edi, edi
mov dword [esp + 0x28], 0x10096df8
mov dword [esp + 0x10], 1
mov dword [esp + 0x30], 0x20504
jmp 0x101c4bd0
mov dword [esp + 0x28], 0x10096e00
mov dword [esp + 0x10], 1
mov dword [esp + 0x30], 0x20504
jmp 0x101c4bd0
or eax, 0x8000040
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x48], 0x10096df8
mov dword [esp + 0x50], 0x20510
mov dword [esp + 0x10], 3
mov dword [esp + 0x28], edx
mov dword [esp + 0x54], ebx
jmp 0x101c4bca
mov dword [esp + 0x28], 0x10096df8
mov dword [esp + 0x30], 0x20012
jmp 0x101c3c80
or eax, 0x10000040
xor edi, edi
mov dword [esp + 0x10], 3
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c4881
or dword [esp + 0x18], 0x8000000
mov byte [esp + 0x93], bl
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x20012
mov dword [esp + 0x40], 0x508
mov dword [esp + 0x50], 0x510
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x54], ebx
jmp 0x101c4bd0
mov edx, dword [esp + 0xb8]
or eax, 0x40
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x20012
mov dword [esp + 0x40], 0x508
mov dword [esp + 0x50], 0x510
jmp 0x101c3c94
or eax, 0x10000040
xor edi, edi
mov dword [esp + 0x10], 4
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x101c4910
or dword [esp + 0x18], 0x8000000
mov byte [esp + 0x93], bl
mov eax, dword [esp + 0x94]
mov dword [esp + 0x28], edx
mov edx, 0x508
mov dword [esp + 0x30], 0x20012
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x60], 0x510
mov dword [esp + 0x44], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x64], ebx
jmp 0x101c4bd0
mov edx, dword [esp + 0xb8]
mov esi, dword [ebp + 8]
or eax, 0x40
mov dword [esp + 0x28], edx
xor edi, edi
mov edx, 0x508
mov dword [esp + 0x10], 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], 0x20012
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ebx
cmp byte [esp + 0x17], bl
jne 0x101c49b8
cmp dword [esi + 0x518], 1
jb 0x101c49a6
cmp dword [esi + 0x38], 0x1f
jne 0x101c49b8
mov dword [esp + 0x48], 0x10096dc4
mov dword [esp + 0x50], 0x20508
jmp 0x101c49c0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], 0x510
mov dword [esp + 0x64], ebx
jmp 0x101c4bd7
or eax, 0x40
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], 0x20504
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x50], 0x508
jmp 0x101c3c98
mov edx, dword [esp + 0xb8]
or eax, 0x40
mov dword [esp + 0x28], edx
mov edx, 0x508
mov dword [esp + 0x10], 4
mov dword [esp + 0x18], eax
xor edi, edi
mov dword [esp + 0x30], 0x20504
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x510
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x64], ebx
jmp 0x101c4bd0
or eax, 0x40
mov dword [esp + 0x10], 2
mov dword [esp + 0x18], eax
xor edi, edi
mov dword [esp + 0x30], 0x4000010
mov dword [esp + 0x38], 0x10096df8
mov dword [esp + 0x40], 0x20504
mov dword [esp + 0x28], edx
mov dword [esp + 0x44], ebx
jmp 0x101c4bd0
or eax, 0x40
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x10], 4
xor edi, edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x4000010
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], 0x20504
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], 0x510
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], 0x508
mov dword [esp + 0x44], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x64], ebx
jmp 0x101c4bd0
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xb8]
or eax, 0x40
mov dword [esp + 0x38], edx
mov edx, 0x508
mov dword [esp + 0x10], 5
mov dword [esp + 0x18], eax
xor edi, edi
mov dword [esp + 0x30], 0x4000010
mov dword [esp + 0x40], 0x20504
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], 0x510
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], edx
jmp 0x101c429c
or eax, 0x20
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], 0x10096f40
mov dword [esp + 0x40], 0x290
mov dword [esp + 0x50], 0x490
jmp 0x101c3c98
or eax, 0x20
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x38], 0x10096f40
mov dword [esp + 0x40], 0x290
mov dword [esp + 0x50], 0x508
jmp 0x101c3c98
mov dword [esp + 0x38], 0x10096f40
or eax, 0x20
mov dword [esp + 0x40], 0x290
mov dword [esp + 0x30], 0x12
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 2
mov dword [esp + 0x44], ebx
xor edi, edi
mov dword [esp + 0x34], ebx
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x518]
cmp eax, dword [esp + 0x10]
je 0x101c4c1d
mov ecx, dword [esi + 0x570]
push eax
mov eax, dword [esp + 0x14]
push eax
push ecx
push 0x10097050
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0x10
push 0x101de948
lea edx, [esp + 0x8c]
push edx
mov dword [esp + 0x90], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov eax, dword [esp + 0x18]
and eax, 0x40
or eax, ebx
je 0x101c4c47
cmp dword [esi + 0x550], ebx
je 0x101c4c47
mov eax, dword [esi + 0x570]
push eax
push 0x100970b0
call fcn.101c3320
add esp, 8
inc dword [esi + 0x14]
mov eax, dword [esp + 0x18]
and eax, 0x40000000
or eax, ebx
je 0x101c4c73
cmp dword [esi + 0x520], ebx
je 0x101c4c73
mov ecx, dword [esi + 0x570]
push ecx
push 0x100970f8
call fcn.101c3320
add esp, 8
inc dword [esi + 0x14]
mov eax, dword [esp + 0x18]
and eax, 0x8000000
or eax, ebx
mov byte [esp + 0x17], bl
mov byte [esp + 0xaf], bl
je 0x101c4cec
cmp dword [esi + 0x51c], ebx
jbe 0x101c4d3c
mov edx, dword [esi + 0x51c]
lea ecx, [esi + 0x524]
mov eax, dword [ecx]
sub eax, 2
je 0x101c4cb9
sub eax, 1
jne 0x101c4cbe
mov byte [esp + 0xaf], 1
jmp 0x101c4cbe
mov byte [esp + 0x17], 1
add ecx, 4
sub edx, 1
jne 0x101c4ca3
cmp byte [esp + 0x17], bl
je 0x101c4d3c
cmp byte [esp + 0xaf], bl
jne 0x101c4cde
cmp byte [esp + 0x93], bl
jne 0x101c4d3c
or dword [esp + 0x18], 0x10000000
mov dword [esp + 0x1c], edi
jmp 0x101c4d3c
xor edi, edi
cmp dword [esi + 0x51c], ebx
jbe 0x101c4d3c
lea edx, [esi + 0x524]
mov dword [esp + 0x94], edx
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
add eax, 0xfffffffe
cmp eax, 1
ja 0x101c4d2b
mov ecx, dword [esi + 0x570]
push ecx
push 0x10097140
call fcn.101c3320
add esp, 8
inc dword [esi + 0x14]
add dword [esp + 0x94], 4
inc edi
cmp edi, dword [esi + 0x51c]
jb 0x101c4d03
xor eax, eax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x10], ebx
jbe 0x101c5988
lea esp, [esp]
mov edx, eax
imul edx, edx, 0xd0
shl eax, 4
lea edi, [edx + esi + 0x38]
mov edx, dword [esp + eax + 0x28]
mov ecx, dword [edx]
mov dword [esp + 0x8c], edi
cmp ecx, 0xffffffff
je 0x101c4d82
mov edi, dword [edi]
cmp ecx, edi
je 0x101c4dbc
mov ecx, dword [edx + 4]
add edx, 4
cmp ecx, 0xffffffff
jne 0x101c4d73
mov eax, dword [esi + 0x570]
mov ecx, dword [esp + 0x24]
push eax
inc ecx
push ecx
push 0x100971a8
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0xc
push 0x101de948
lea edx, [esp + 0x8c]
push edx
mov dword [esp + 0x90], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov ecx, dword [esp + eax + 0x30]
mov eax, dword [esp + eax + 0x34]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x9c], eax
mov eax, ecx
and eax, 4
or eax, ebx
mov dword [esp + 0x98], ecx
je 0x101c4e07
cmp dword [edi + 0x80], ebx
je 0x101c4e07
mov ecx, dword [esi + 0x570]
mov edx, dword [esp + 0x24]
push ecx
inc edx
push edx
push 0x100971f8
call fcn.101c3320
add esp, 0xc
inc dword [esi + 0x14]
mov eax, dword [esp + 0x98]
and eax, 8
or eax, ebx
je 0x101c4e4a
mov eax, dword [edi + 0x80]
cmp eax, 1
je 0x101c4e4a
cmp eax, 2
jne 0x101c4e2d
cmp dword [edi + 0x84], eax
je 0x101c4e4a
mov eax, dword [esi + 0x570]
mov ecx, dword [esp + 0x24]
push eax
inc ecx
push ecx
push 0x10097250
call fcn.101c3320
add esp, 0xc
inc dword [esi + 0x14]
mov eax, dword [esp + 0x98]
and eax, 0x10
or eax, ebx
je 0x101c4ec8
mov ecx, dword [edi + 0x80]
cmp ecx, 2
je 0x101c4ec8
mov eax, dword [edi]
cmp eax, 4
jne 0x101c4e6f
cmp ecx, 1
je 0x101c4ec8
cmp eax, 0xc
je 0x101c4ec8
cmp eax, 0x26
je 0x101c4ec8
cmp eax, 0x27
je 0x101c4ec8
cmp eax, 0x23
je 0x101c4ec8
cmp eax, 0xf
je 0x101c4ec8
cmp eax, 0xb
je 0x101c4ec8
cmp eax, 0x25
je 0x101c4ec8
cmp eax, 0x16
je 0x101c4ec8
cmp eax, 0x17
je 0x101c4ec8
cmp eax, 0x18
je 0x101c4ec8
cmp eax, 0x24
je 0x101c4ec8
cmp eax, 0xd
je 0x101c4ec8
mov edx, dword [esi + 0x570]
mov eax, dword [esp + 0x24]
push edx
inc eax
push eax
push 0x100972c8
call fcn.101c3320
add esp, 0xc
inc dword [esi + 0x14]
mov eax, dword [esp + 0x98]
and eax, 2
or eax, ebx
je 0x101c4f51
cmp dword [edi + 0x84], ebx
jne 0x101c4ee7
test byte [edi + 0x94], 0xf0
jne 0x101c4f51
mov eax, dword [edi]
cmp eax, 0xd
je 0x101c4f51
cmp eax, 0xb
je 0x101c4f51
cmp eax, 0x25
je 0x101c4f51
cmp eax, 0x23
je 0x101c4f51
cmp eax, 0xf
je 0x101c4f51
cmp eax, 0x16
je 0x101c4f51
cmp eax, 0x17
je 0x101c4f51
cmp eax, 0x18
je 0x101c4f51
cmp eax, 0x20
je 0x101c4f51
cmp eax, 0x21
je 0x101c4f51
cmp eax, 0x22
je 0x101c4f51
cmp eax, 0x24
je 0x101c4f51
cmp eax, 0xc
je 0x101c4f51
cmp eax, 0x26
je 0x101c4f51
cmp eax, 0x27
je 0x101c4f51
mov ecx, dword [esi + 0x570]
mov edx, dword [esp + 0x24]
push ecx
inc edx
push edx
push 0x10097370
call fcn.101c3320
add esp, 0xc
inc dword [esi + 0x14]
mov eax, dword [esp + 0x98]
and eax, 0x4000000
or eax, ebx
je 0x101c4ff3
cmp dword [edi + 0x84], ebx
jne 0x101c4f89
mov eax, dword [edi + 0x94]
cmp eax, 0x10
je 0x101c4ff3
cmp eax, 0x20
je 0x101c4ff3
cmp eax, 0x40
je 0x101c4ff3
cmp eax, 0x80
je 0x101c4ff3
mov eax, dword [edi]
cmp eax, 0xd
je 0x101c4ff3
cmp eax, 0xb
je 0x101c4ff3
cmp eax, 0x25
je 0x101c4ff3
cmp eax, 0x23
je 0x101c4ff3
cmp eax, 0xf
je 0x101c4ff3
cmp eax, 0x16
je 0x101c4ff3
cmp eax, 0x17
je 0x101c4ff3
cmp eax, 0x18
je 0x101c4ff3
cmp eax, 0x20
je 0x101c4ff3
cmp eax, 0x21
je 0x101c4ff3
cmp eax, 0x22
je 0x101c4ff3
cmp eax, 0x24
je 0x101c4ff3
cmp eax, 0xc
je 0x101c4ff3
cmp eax, 0x26
je 0x101c4ff3
cmp eax, 0x27
je 0x101c4ff3
mov eax, dword [esi + 0x570]
mov ecx, dword [esp + 0x24]
push eax
inc ecx
push ecx
push 0x10097410
call fcn.101c3320
add esp, 0xc
inc dword [esi + 0x14]
mov eax, dword [esp + 0x98]
and eax, 0x100
or eax, ebx
je 0x101c5030
mov eax, dword [edi + 0x8c]
cmp eax, 1
je 0x101c5013
cmp eax, 3
jne 0x101c5030
mov edx, dword [esi + 0x570]
mov eax, dword [esp + 0x24]
push edx
inc eax
push eax
push 0x100974b0
call fcn.101c3320
add esp, 0xc
inc dword [esi + 0x14]
mov eax, dword [esp + 0x98]
and eax, 0x400
or eax, ebx
je 0x101c506d
mov eax, dword [edi + 0x8c]
cmp eax, 2
je 0x101c5050
cmp eax, 3
jne 0x101c506d
mov ecx, dword [esi + 0x570]
mov edx, dword [esp + 0x24]
push ecx
inc edx
push edx
push 0x10097508
call fcn.101c3320
add esp, 0xc
inc dword [esi + 0x14]
mov eax, dword [esp + 0x98]
and eax, 0x4000
or eax, ebx
je 0x101c50e3
mov eax, dword [edi + 0x80]
cmp eax, 2
jne 0x101c50c6
cmp dword [edi + 0x84], 1
jne 0x101c50b1
cmp byte [edi + 0x94], bl
jne 0x101c50b1
cmp byte [edi + 0x95], bl
jne 0x101c50b1
cmp byte [edi + 0x96], bl
jne 0x101c50b1
cmp byte [edi + 0x97], bl
je 0x101c50e3
cmp eax, 2
jne 0x101c50c6
cmp dword [edi + 0x84], eax
jne 0x101c50c6
cmp dword [edi + 0x98], ebx
je 0x101c50e3
mov eax, dword [esi + 0x570]
mov ecx, dword [esp + 0x24]
push eax
inc ecx
push ecx
push 0x10097558
call fcn.101c3320
add esp, 0xc
inc dword [esi + 0x14]
mov eax, dword [esp + 0x98]
and eax, 0x20000000
or eax, ebx
je 0x101c5117
mov eax, esi
call fcn.101d8010
test al, al
jne 0x101c5117
mov edx, dword [esp + 0x9c]
or dword [esp + 0x98], 0x20000
mov dword [esp + 0x9c], edx
mov eax, dword [esp + 0x18]
and eax, 0x10000000
xor ecx, ecx
mov dword [esp + 0xc0], eax
or eax, ecx
je 0x101c514b
cmp dword [edi], 7
jne 0x101c514b
mov eax, dword [esp + 0x9c]
and dword [esp + 0x98], 0xfffdffff
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x98]
and eax, 0x20000
or eax, ebx
je 0x101c51a5
mov eax, dword [edi + 0xcc]
xor ecx, ecx
sub eax, 1
je 0x101c517e
sub eax, 1
je 0x101c5177
sub eax, 1
jne 0x101c5183
lea ecx, [eax + 3]
jmp 0x101c5183
mov ecx, 2
jmp 0x101c5183
mov ecx, 1
xor eax, eax
cmp ecx, ebx
jbe 0x101c5224
lea edx, [edi + 0xc0]
cmp dword [edx], ebx
jne 0x101c570c
inc eax
add edx, 4
cmp eax, ecx
jb 0x101c5193
jmp 0x101c5224
cmp dword [edi], 7
jne 0x101c5224
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx + 0xcc]
xor edi, edi
sub eax, 1
je 0x101c51d4
sub eax, 1
je 0x101c51cd
sub eax, 1
jne 0x101c51d9
lea edi, [eax + 3]
jmp 0x101c51d9
mov edi, 2
jmp 0x101c51d9
mov edi, 1
xor edx, edx
cmp edi, ebx
jbe 0x101c5224
add ecx, 0xc0
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x94]
cmp dword [ecx], ebx
je 0x101c5217
mov eax, dword [esp + 0x18]
and eax, 0x8000000
xor ecx, ecx
or eax, ecx
je 0x101c5217
mov ecx, dword [esp + 0xc0]
xor eax, eax
or ecx, eax
je 0x101c5746
add dword [esp + 0x94], 4
inc edx
cmp edx, edi
jb 0x101c51ec
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x8c]
and eax, 0x80000
or eax, ebx
mov ecx, 2
je 0x101c5298
cmp dword [edi + 0x80], ecx
jne 0x101c5276
mov edx, 1
cmp dword [edi + 0x84], edx
jne 0x101c5276
cmp byte [edi + 0x94], bl
jne 0x101c5276
cmp byte [edi + 0x95], dl
jne 0x101c5276
cmp byte [edi + 0x96], cl
jne 0x101c5276
cmp byte [edi + 0x97], 3
je 0x101c529d
mov edx, dword [esi + 0x570]
mov eax, dword [esp + 0x24]
push edx
inc eax
push eax
push 0x100976c0
call fcn.101c3320
add esp, 0xc
inc dword [esi + 0x14]
mov ecx, 2
mov edx, 1
mov eax, dword [edi]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
cmp eax, 0x27
ja case.0x101c52ee.4
movzx eax, byte [eax + 0x101c5bec]
jmp dword [eax*4 + 0x101c5ba8]
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], 0x1000
jmp case.0x101c52ee.4
mov eax, dword [esi + 0x574]
cmp eax, 5
ja case.0x101c52ee.4
jmp dword [eax*4 + 0x101c5c14]
movzx ecx, byte [esi + 0x1a]
neg ecx
sbb ecx, ecx
and ecx, 0x10
add ecx, 0x10
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], ecx
jmp case.0x101c52ee.4
movzx edx, byte [esi + 0x1a]
mov eax, dword [esp + 0xbc]
neg edx
sbb edx, edx
and edx, 0x10
add edx, 0x10
mov dword [esp + 0x20], ecx
mov dword [esp + 0xa0], 6
mov dword [esp + 0xa4], edx
cmp eax, 0x5b
je 0x101c5355
cmp eax, 0x5e
jle case.0x101c52ee.4
cmp eax, 0x61
jg case.0x101c52ee.4
mov dword [esp + 0xa0], 7
jmp case.0x101c52ee.4
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], 0x20
jmp case.0x101c52ee.4
mov eax, dword [esi + 0x574]
mov dword [esp + 0x20], edx
cmp eax, 5
ja case.0x101c52ee.4
jmp dword [eax*4 + 0x101c5c2c]
movzx eax, byte [esi + 0x1a]
neg eax
sbb eax, eax
and eax, 0x10
add eax, 0x10
mov dword [esp + 0xa0], eax
jmp case.0x101c52ee.4
mov eax, dword [esi + 0x644]
cmp eax, 3
je case.0x101c538c.2
add eax, 0xfffffffc
cmp eax, edx
ja case.0x101c52ee.4
mov dword [esp + 0xa0], 0x20
jmp case.0x101c52ee.4
mov dword [esp + 0xa0], 8
jmp case.0x101c52ee.4
mov eax, 0x20
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x20], ecx
cmp eax, 0x5b
je 0x101c540f
cmp eax, 0x5f
jne case.0x101c52ee.4
mov dword [esp + 0xa0], 0x21
jmp case.0x101c52ee.4
mov dword [esp + 0x20], ecx
xor ecx, ecx
cmp dword [esp + 0xbc], 0x69
mov dword [esp + 0xa0], 0x1000
sete cl
add ecx, 0x1000
mov dword [esp + 0xa4], ecx
jmp case.0x101c52ee.4
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], 0x10
jmp case.0x101c52ee.4
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], 4
jmp case.0x101c52ee.4
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], 0x80
jmp case.0x101c52ee.4
xor edx, edx
cmp dword [esp + 0xbc], 0x59
mov dword [esp + 0x20], ecx
sete dl
mov dword [esp + 0xa0], 0xf
add edx, 0x1000
mov dword [esp + 0xa4], edx
jmp case.0x101c52ee.4
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], 0xffffffff
jmp case.0x101c52ee.4
mov eax, 0x1000
mov dword [esp + 0x20], ecx
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
jmp case.0x101c52ee.4
mov dword [esp + 0x20], ebx
jmp case.0x101c52ee.4
movzx eax, byte [esi + 0x1b]
neg eax
sbb eax, eax
and eax, 7
add eax, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], eax
jmp case.0x101c52ee.4
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], 0x2000
jmp case.0x101c52ee.4
mov ecx, dword [edi + 8]
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], pe_nt_image_headers32
cmp ecx, 0x100
jae 0x101c553f
lea edx, [ecx + ecx*2]
mov edx, dword [esi + edx*4 + 0xa688]
xor eax, eax
mov dword [esp + 0x88], edx
cmp edx, ebx
jbe case.0x101c52ee.4
lea edx, [ecx + ecx*2]
lea edx, [esi + edx*4 + 0xa685]
jmp 0x101c5560
lea edi, [eax + ecx]
cmp edi, 0x100
jae case.0x101c52ee.4
mov byte [edx], 1
inc eax
add edx, 0xc
cmp eax, dword [esp + 0x88]
jb 0x101c5560
mov edi, dword [esp + 0x8c]
mov ecx, dword [edi + 0xcc]
mov dword [esp + 0x88], ecx
cmp ecx, dword [esp + 0x20]
jne 0x101c5780
mov eax, dword [edi]
cmp eax, 0x1f
ja case.0x101c55a7.1
movzx eax, byte [eax + 0x101c5c4c]
jmp dword [eax*4 + 0x101c5c44]
cmp byte [esi + 0x1b], bl
jne case.0x101c55a7.1
cmp dword [edi + 0xc0], ebx
jne 0x101c57ba
xor eax, eax
cmp ecx, ebx
jle 0x101c56f4
lea ecx, [edi + 0x18]
add edi, 0xc0
mov edx, dword [edi]
cmp edx, ebx
je 0x101c56d0
cmp edx, 1
jle 0x101c58f8
cmp edx, 3
jg 0x101c58f8
mov edx, dword [ecx - 8]
cmp edx, ebx
je 0x101c566e
cmp edx, 3
jne 0x101c57f4
cmp dword [ecx], 2
jne 0x101c5830
mov edx, 0x1000
cmp dword [ecx + 8], edx
jae 0x101c586c
cmp dword [ecx + 0x10], edx
jb 0x101c56e0
mov ecx, dword [esi + 0x570]
mov edx, dword [esp + 0x24]
push ecx
inc edx
push edx
mov edx, dword [esp + 0x94]
lea ecx, [eax + eax*4 + 5]
mov ecx, dword [edx + ecx*8]
push 0xfff
push ecx
inc eax
push eax
push 0x10097a50
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0x18
push 0x101de948
lea edx, [esp + 0x9c]
push edx
mov dword [esp + 0xa0], 0x80004005
call sub.msvcrt.dll__CxxThrowException
cmp dword [ecx], 1
jne 0x101c58bc
cmp dword [ecx + 8], 0x1000
jb 0x101c56e0
mov ecx, dword [esi + 0x570]
mov edx, dword [esp + 0x24]
push ecx
inc edx
push edx
mov edx, dword [esp + 0x94]
lea ecx, [eax + eax*4]
mov ecx, dword [edx + ecx*8 + 0x20]
push 0xfff
push ecx
inc eax
push eax
push 0x10097870
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0x18
push 0x101de948
lea edx, [esp + 0xbc]
push edx
mov dword [esp + 0xc0], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov edx, dword [ecx - 0x10]
cmp edx, dword [esp + eax*4 + 0xa0]
jae 0x101c5934
inc eax
add edi, 4
add ecx, 0x28
cmp eax, dword [esp + 0x88]
jl 0x101c55d2
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x10]
jae 0x101c5988
jmp 0x101c4d50
mov eax, dword [esi + 0x570]
mov ecx, dword [esp + 0x24]
push eax
inc ecx
push ecx
push 0x100975a8
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0xc
push 0x101de948
lea edx, [esp + 0x8c]
push edx
mov dword [esp + 0x90], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov eax, dword [esi + 0x570]
mov ecx, dword [esp + 0x24]
push eax
inc ecx
push ecx
push 0x10097610
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0xc
push 0x101de948
lea edx, [esp + 0x8c]
push edx
mov dword [esp + 0x90], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov eax, dword [esi + 0x570]
mov ecx, dword [esp + 0x24]
push eax
inc ecx
push ecx
push 0x10097720
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0xc
push 0x101de948
lea edx, [esp + 0x8c]
push edx
mov dword [esp + 0x90], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x570]
inc eax
push eax
push ecx
push 0x10097780
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0xc
push 0x101de948
lea edx, [esp + 0x8c]
push edx
mov dword [esp + 0x90], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov ecx, dword [esi + 0x570]
mov edx, dword [esp + 0x24]
push ecx
inc edx
push edx
inc eax
push eax
push 0x10097b10
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0x10
push 0x101de948
lea eax, [esp + 0x8c]
push eax
mov dword [esp + 0x90], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0x570]
inc ecx
push ecx
push edx
inc eax
push eax
push 0x10097910
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0x10
push 0x101de948
lea eax, [esp + 0xc0]
push eax
mov dword [esp + 0xc4], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov ecx, dword [esi + 0x570]
mov edx, dword [esp + 0x24]
push ecx
inc edx
push edx
mov edx, dword [esp + 0x94]
lea ecx, [eax + eax*4]
mov ecx, dword [edx + ecx*8 + 0x20]
push 0xfff
push ecx
inc eax
push eax
push 0x100979a8
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0x18
push 0x101de948
lea edx, [esp + 0x98]
push edx
mov dword [esp + 0x9c], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0x570]
inc ecx
push ecx
push edx
inc eax
push eax
push 0x100977e0
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0x10
push 0x101de948
lea eax, [esp + 0xc4]
push eax
mov dword [esp + 0xc8], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0x570]
inc ecx
push ecx
push edx
inc eax
push eax
push 0x10097c08
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0x10
push 0x101de948
lea eax, [esp + 0xb4]
push eax
mov dword [esp + 0xb8], 0x80004005
call sub.msvcrt.dll__CxxThrowException
mov ecx, dword [esi + 0x570]
mov edx, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + eax*4 + 0xa4]
inc edx
push edx
dec ecx
push ecx
mov ecx, dword [esp + 0x98]
lea edx, [eax + eax*4]
mov edx, dword [ecx + edx*8 + 8]
push edx
inc eax
push eax
push 0x10097b88
call fcn.101c3320
inc dword [esi + 0x14]
add esp, 0x18
push 0x101de948
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0x94], 0x80004005
call sub.msvcrt.dll__CxxThrowException
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4