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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xec
mov esi, dword [esp + 0x100]
mov dword [esp + 0xcc], 1
mov ebx, dword [esp + 0x104]
mov edi, dword [esi + 0x6e44]
mov ecx, dword [esi + 0x60a0]
shl dword [esp + 0xcc], cl
mov dword [esp + 0x68], edi
mov edi, dword [esi + 0x53c0]
test edi, edi
jne 0xc53eab
mov eax, dword [esi + 0x6e2c]
mov edi, dword [esi + 0x6e64]
test eax, eax
mov dword [esp + 0x30], eax
jle 0xc52ff6
lea ebp, [ebx + 0x10af]
xor ecx, ecx
lea edx, [ebx + 0x10bd]
lea eax, [ebx + 0x10c5]
mov dword [esp + 0x38], edx
lea edx, [esi + 0x6da4]
mov dword [esp + 0x3c], eax
mov eax, ebp
mov ebp, ecx
mov dword [esp + 0x34], edx
mov ecx, eax
lea esi, [esi]
mov eax, dword [ebx + 0x13e0]
add ebp, 1
mov dword [edi + 0x13e0], eax
mov eax, dword [ebx + 0x10f4]
mov dword [edi + 0x10f4], eax
mov eax, dword [ebx + 0x10f8]
mov dword [edi + 0x10f8], eax
mov eax, dword [ebx + 0x10fc]
mov dword [edi + 0x10fc], eax
mov eax, dword [ebx + 0x1100]
mov dword [edi + 0x1100], eax
mov edx, dword [esi + 0x4660]
mov eax, edx
imul eax, ebp
imul eax, eax, 0x54
add eax, dword [esi + 0x469c]
mov dword [edi + 0x1090], edx
mov dword [edi + 0x108c], eax
mov eax, dword [esi + 0x4648]
mov dword [edi + 0x1094], eax
mov eax, dword [esi + 0x4690]
mov dword [edi + 0x10ec], eax
mov eax, dword [esi + 0x4694]
mov dword [edi + 0x10f0], eax
imul eax, dword [esi + 0x45c0], 0x3c
lea eax, [esi + eax + 0x44b0]
mov edx, dword [eax + 0xc]
mov dword [edi + 0x1014], edx
mov edx, dword [eax + 0x10]
mov dword [edi + 0x1018], edx
mov edx, dword [eax + 0x14]
mov dword [edi + 0x101c], edx
mov edx, dword [eax + 0x18]
mov dword [edi + 0x1020], edx
mov edx, dword [eax + 0x1c]
mov dword [edi + 0x1024], edx
mov edx, dword [eax + 0x20]
mov dword [edi + 0x1028], edx
mov edx, dword [eax + 0x24]
mov dword [edi + 0x102c], edx
mov edx, dword [eax + 0x28]
mov dword [edi + 0x1030], edx
mov edx, dword [eax + 0x2c]
mov dword [edi + 0x1034], edx
mov edx, dword [eax + 0x30]
mov dword [edi + 0x1038], edx
mov edx, dword [eax + 0x34]
mov dword [edi + 0x103c], edx
mov edx, dword [eax + 0x38]
mov dword [edi + 0x1040], edx
mov edx, dword [eax + 0x3c]
mov dword [edi + 0x1044], edx
mov edx, dword [eax + 0x40]
mov dword [edi + 0x1048], edx
mov eax, dword [eax + 0x44]
mov dword [edi + 0x104c], eax
imul eax, dword [esi + 0x45bc], 0x3c
lea eax, [esi + eax + 0x44b0]
mov edx, dword [eax + 0xc]
mov dword [edi + 0x1050], edx
mov edx, dword [eax + 0x10]
mov dword [edi + 0x1054], edx
mov edx, dword [eax + 0x14]
mov dword [edi + 0x1058], edx
mov edx, dword [eax + 0x18]
mov dword [edi + 0x105c], edx
mov edx, dword [eax + 0x1c]
mov dword [edi + 0x1060], edx
mov edx, dword [eax + 0x20]
mov dword [edi + 0x1064], edx
mov edx, dword [eax + 0x24]
mov dword [edi + 0x1068], edx
mov edx, dword [eax + 0x28]
mov dword [edi + 0x106c], edx
mov edx, dword [eax + 0x2c]
mov dword [edi + 0x1070], edx
mov edx, dword [eax + 0x30]
mov dword [edi + 0x1074], edx
mov edx, dword [eax + 0x34]
mov dword [edi + 0x1078], edx
mov edx, dword [eax + 0x38]
mov dword [edi + 0x107c], edx
mov edx, dword [eax + 0x3c]
mov dword [edi + 0x1080], edx
mov edx, dword [eax + 0x40]
mov dword [edi + 0x1084], edx
mov eax, dword [eax + 0x44]
mov dword [edi + 0x1088], eax
mov dword [esp + 0x2c], ecx
mov dword [esp], edi
call fcn.00c78800
mov dword [esp], edi
call fcn.00c78a90
movzx eax, byte [ebx + 0x10a8]
mov edx, dword [esp + 0x38]
mov byte [edi + 0x10a8], al
movzx eax, byte [ebx + 0x10ab]
mov byte [edi + 0x10ab], al
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
mov dword [edi + 0x10af], eax
mov eax, dword [ecx + 4]
mov dword [edi + 0x10b3], eax
mov eax, dword [edx]
mov edx, dword [esp + 0x3c]
mov dword [edi + 0x10bd], eax
mov eax, dword [edx]
mov dword [edi + 0x10c5], eax
movzx eax, byte [ebx + 0x10b7]
mov byte [edi + 0x10b7], al
movzx eax, byte [ebx + 0x10b8]
mov byte [edi + 0x10b8], al
mov eax, dword [esp + 0x34]
mov dword [edi + 0x1104], eax
xor eax, eax
nop
mov edx, dword [ebx + eax + 0xb0c]
mov dword [edi + eax + 0xb0c], edx
add eax, 0x34
cmp eax, 0x514
jne 0xc52fb0
mov dword [edi + 0x1010], 0xffffffff
mov eax, dword [esi + 0x4670]
test eax, eax
je 0xc52fe6
mov dword [edi + 0x1010], 0xfffffff8
add edi, 0x1420
cmp ebp, dword [esp + 0x30]
jne 0xc52d80
mov ecx, dword [esi + 0x4658]
test ecx, ecx
jle 0xc5301c
mov edx, dword [esi + 0x6e48]
xor eax, eax
mov dword [edx + eax*4], 0xffffffff
mov ecx, dword [esi + 0x4658]
add eax, 1
cmp eax, ecx
jl 0xc53008
mov ebp, dword [esi + 0x6e2c]
test ebp, ebp
jle 0xc5305d
xor edi, edi
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov eax, dword [esi + 0x6e70]
mov eax, dword [eax + edi*4]
add edi, 1
mov dword [esp], eax
call sub.KERNEL32.dll_ReleaseSemaphore
sub esp, 0xc
cmp dword [esi + 0x6e2c], edi
jg 0xc53028
mov ecx, dword [esi + 0x4658]
test ecx, ecx
jle 0xc53e87
mov eax, dword [esi + 0x6e78]
xor ebp, ebp
mov edi, dword [esi + 0x45c0]
mov dword [esp + 0x3c], 0
mov dword [ebx + 0x1104], eax
mov dword [esp + 0x40], edi
mov edi, dword [esi + 0x45bc]
imul eax, dword [esp + 0x40], 0x3c
mov dword [esp + 0xc8], edi
add eax, esi
mov edi, dword [eax + 0x44c4]
mov eax, dword [eax + 0x44d0]
mov dword [esp + 0x50], edi
lea edi, [esi + 0x53f8]
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x54], eax
sub edi, 1
mov dword [esp + 0x64], edi
lea edi, [esi + 0x46b0]
mov dword [esp + 0x6c], edi
nop
mov edi, dword [esp + 0x8c]
mov eax, dword [esi + 0x53f4]
mov dword [edi], 0
mov dword [edi + 4], 0
mov byte [edi + 8], 0
mov edi, dword [esp + 0x3c]
mov dword [ebx + 0x10a0], eax
xor eax, eax
test edi, edi
setne al
sub ecx, 1
mov dword [ebx + 0x1098], eax
mov eax, dword [esp + 0x3c]
sub ecx, dword [esp + 0x3c]
neg eax
shl eax, 7
mov dword [ebx + 0x10d4], eax
mov eax, dword [esi + 0x465c]
shl ecx, 7
mov dword [ebx + 0x10d8], ecx
test eax, eax
jle 0xc53a79
mov eax, dword [esp + 0x3c]
imul eax, dword [esp + 0x50]
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
shl eax, 4
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
shl edi, 4
imul eax, dword [esp + 0x54]
mov dword [esp + 0x44], edi
shl edx, 2
add ecx, ecx
sub edi, dword [esp + 0x50]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x50]
shl eax, 3
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x54]
shl edx, 2
lea eax, [eax*4 + 4]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x54]
shl edi, 3
sub edi, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x5c], edi
lea edi, [ecx + 0xf]
mov dword [esp + 0x90], edi
add eax, ecx
lea edi, [eax + 0xf]
mov dword [esp + 0x94], edi
lea edi, [edx + 0xf]
add edx, dword [esp + 0x50]
mov dword [esp + 0x98], edi
lea edi, [eax + eax + 0xf]
mov dword [esp + 0xa0], edi
shl eax, 2
mov dword [esp + 0x48], edx
add edx, 0xf
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x50]
shl edx, 3
mov edi, edx
sub edi, dword [esp + 0x50]
add edi, 0xf
mov dword [esp + 0xa4], edi
lea edi, [edx + 0xf]
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0x50]
lea edx, [edi + edx + 0xf]
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x48]
add edx, edx
lea edi, [edx + 0xf]
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0x50]
lea edx, [edi + edx + 0xf]
lea edi, [eax + 0xf]
mov dword [esp + 0xb8], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x54]
lea eax, [edi + eax + 0xf]
mov edi, dword [esp + 0x88]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x44]
shl edx, 2
mov dword [esp + 0x44], 0x10
add edi, 0xf
sub eax, ecx
add eax, 0xf
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc4], edi
add eax, eax
lea edi, [eax + 7]
add eax, dword [esp + 0x54]
mov dword [esp + 0x70], edi
lea edi, [eax + 7]
mov dword [esp + 0x74], edi
lea edi, [edx + 7]
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x54]
lea eax, [eax + eax + 7]
mov dword [esp + 0x80], eax
imul eax, dword [esp + 0xc8], 0x3c
lea edx, [edi + edx + 7]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x7c], edx
add eax, esi
mov dword [esp + 0x4c], eax
add edi, 7
mov dword [esp + 0x84], edi
xor edi, edi
mov edx, dword [esp + 0x3c]
test edx, edx
jle 0xc53335
test dword [esp + 0x64], edi
jne 0xc53335
mov eax, dword [ebp]
sub eax, dword [esp + 0x68]
cmp eax, edi
jge 0xc53335
mov eax, dword [esi + 0x465c]
mov edx, dword [ebp]
lea ecx, [eax - 1]
cmp edx, ecx
je 0xc5333b
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x68]
jmp 0xc53317
mov eax, dword [esi + 0x465c]
mov ecx, dword [ebp]
lea edx, [eax - 1]
cmp ecx, edx
je 0xc53ce2
pause
mov dword [esp], 0
call sub.KERNEL32.dll_Sleep
mov eax, dword [ebp]
sub eax, ebx
sub esp, 4
cmp eax, edi
jl 0xc53303
mov ebx, dword [esp + 0x40]
mov eax, dword [esi + 0x465c]
sub eax, 1
mov edx, edi
sub eax, edi
shl eax, 7
mov dword [ebx + 0x10d0], eax
mov eax, dword [esp + 0x4c]
shl edx, 7
neg edx
mov dword [ebx + 0x10cc], edx
mov edx, dword [esp + 0x38]
add edx, dword [eax + 0x44d4]
add eax, 0x44c0
mov eax, dword [eax + 0x18]
add eax, dword [esp + 0x34]
mov dword [ebx + 0x1068], edx
mov edx, dword [esp + 0x4c]
mov dword [ebx + 0x106c], eax
mov eax, dword [esp + 0x34]
add eax, dword [edx + 0x44dc]
mov dword [ebx + 0x1070], eax
xor eax, eax
test edi, edi
setne al
mov dword [ebx + 0x109c], eax
mov eax, dword [ebx + 0x108c]
mov edx, dword [eax + 8]
cmp edx, 1
je 0xc53c70
cmp edx, 2
je 0xc53cd3
mov ecx, dword [esi + 0x45c8]
imul eax, ecx, 0x3c
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x38]
add eax, esi
add ecx, dword [eax + 0x44d4]
mov dword [esp + 0x48], eax
add eax, 0x44c0
mov eax, dword [eax + 0x18]
add eax, dword [esp + 0x34]
mov dword [ebx + 0x102c], ecx
mov ecx, dword [esp + 0x48]
mov dword [ebx + 0x1030], eax
mov eax, dword [esp + 0x34]
add eax, dword [ecx + 0x44dc]
test edx, edx
mov dword [ebx + 0x1034], eax
jne 0xc53caf
mov ecx, dword [esp + 0x3c]
mov eax, esi
mov edx, ebx
mov dword [esp], edi
call fcn.00c50de0
mov eax, dword [ebx + 0x1104]
mov eax, dword [eax + 0xc]
sub eax, 0x21
cmp eax, 0x3fffffde
setbe al
movzx eax, al
or dword [ebx + 0x1108], eax
mov eax, dword [esi + 0x53c0]
test eax, eax
je 0xc53a40
mov edx, dword [ebx + 0x108c]
mov ecx, dword [edx]
cmp ecx, 9
je 0xc53cc6
cmp ecx, 4
je 0xc53cc6
xor eax, eax
cmp byte [edx + 0x11], 0
setne al
mov dword [esp + 0x58], eax
movzx eax, byte [edx + 0x13]
shl eax, 2
add eax, dword [edx + 8]
movzx edx, byte [esi + ecx + 0x53b0]
lea eax, [esi + eax*4]
movzx eax, byte [edx + eax + 0x52f0]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x4658]
sub eax, 1
cmp eax, dword [esp + 0x3c]
je 0xc5351f
mov eax, dword [esi + 0x6e4c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x44]
add edx, edx
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x88]
add eax, dword [ebx + 0x1068]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x6e50]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x44]
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x5c]
add eax, dword [ebx + 0x106c]
mov ecx, dword [eax]
mov dword [edx], ecx
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x6e54]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x44]
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x5c]
add eax, dword [ebx + 0x1070]
mov ecx, dword [eax]
mov dword [edx], ecx
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x465c]
sub eax, 1
cmp eax, edi
je 0xc5391f
mov eax, dword [ebx + 0x108c]
mov eax, dword [eax + 0x5c]
test eax, eax
jne 0xc5391f
mov eax, dword [esi + 0x6e58]
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
movzx eax, byte [eax + 0xf]
mov byte [edx], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0x50]
movzx eax, byte [eax + ecx + 0xf]
mov ecx, dword [esp + 0x30]
mov byte [edx + 1], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0x90]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 2], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0x94]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 3], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0x98]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 4], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov ecx, dword [esp + 0x9c]
mov eax, dword [ebx + 0x1068]
movzx eax, byte [eax + ecx]
mov byte [edx + 5], al
mov eax, dword [esi + 0x6e58]
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0xa0]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 6], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0xa4]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 7], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0xa8]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 8], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0xac]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 9], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov ecx, dword [esp + 0xb0]
mov eax, dword [ebx + 0x1068]
movzx eax, byte [eax + ecx]
mov byte [edx + 0xa], al
mov eax, dword [esi + 0x6e58]
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0xb4]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 0xb], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0xb8]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 0xc], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0xbc]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 0xd], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1068]
mov ecx, dword [esp + 0xc0]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 0xe], al
mov eax, dword [esi + 0x6e58]
mov edx, dword [eax + ecx]
mov ecx, dword [esp + 0xc4]
mov eax, dword [ebx + 0x1068]
movzx eax, byte [eax + ecx]
mov byte [edx + 0xf], al
mov eax, dword [esi + 0x6e5c]
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x106c]
movzx eax, byte [eax + 7]
mov byte [edx], al
mov eax, dword [esi + 0x6e60]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1070]
movzx eax, byte [eax + 7]
mov byte [edx], al
mov eax, dword [esi + 0x6e5c]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x106c]
mov ecx, dword [esp + 0x54]
movzx eax, byte [eax + ecx + 7]
mov ecx, dword [esp + 0x30]
mov byte [edx + 1], al
mov eax, dword [esi + 0x6e60]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1070]
mov ecx, dword [esp + 0x54]
movzx eax, byte [eax + ecx + 7]
mov ecx, dword [esp + 0x30]
mov byte [edx + 1], al
mov eax, dword [esi + 0x6e5c]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x106c]
mov ecx, dword [esp + 0x70]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 2], al
mov eax, dword [esi + 0x6e60]
mov edx, dword [eax + ecx]
mov ecx, dword [esp + 0x70]
mov eax, dword [ebx + 0x1070]
movzx eax, byte [eax + ecx]
mov byte [edx + 2], al
mov eax, dword [esi + 0x6e5c]
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x106c]
mov ecx, dword [esp + 0x74]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 3], al
mov eax, dword [esi + 0x6e60]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1070]
mov ecx, dword [esp + 0x74]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 3], al
mov eax, dword [esi + 0x6e5c]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x106c]
mov ecx, dword [esp + 0x78]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 4], al
mov eax, dword [esi + 0x6e60]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1070]
mov ecx, dword [esp + 0x78]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 4], al
mov eax, dword [esi + 0x6e5c]
mov edx, dword [eax + ecx]
mov ecx, dword [esp + 0x7c]
mov eax, dword [ebx + 0x106c]
movzx eax, byte [eax + ecx]
mov byte [edx + 5], al
mov eax, dword [esi + 0x6e60]
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1070]
mov ecx, dword [esp + 0x7c]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 5], al
mov eax, dword [esi + 0x6e5c]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x106c]
mov ecx, dword [esp + 0x80]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 6], al
mov eax, dword [esi + 0x6e60]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1070]
mov ecx, dword [esp + 0x80]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 6], al
mov eax, dword [esi + 0x6e5c]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x106c]
mov ecx, dword [esp + 0x84]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edx + 7], al
mov eax, dword [esi + 0x6e60]
mov edx, dword [eax + ecx]
mov eax, dword [ebx + 0x1070]
mov ecx, dword [esp + 0x84]
movzx eax, byte [eax + ecx]
mov byte [edx + 7], al
mov eax, dword [esp + 0x48]
test eax, eax
je 0xc53a40
mov eax, dword [esi + 0x46ac]
test eax, eax
jne 0xc53cf0
mov eax, dword [esi + 0x4648]
mov ecx, dword [esp + 0x48]
shl eax, 6
add eax, esi
movzx edx, byte [ecx + eax + 0x5330]
mov eax, ecx
shl eax, 4
add eax, dword [esp + 0x6c]
add edx, 0xc0
mov dword [esp + 0xd0], eax
mov eax, ecx
add eax, 0x40
shl eax, 4
add eax, dword [esp + 0x6c]
shl edx, 4
add edx, dword [esp + 0x6c]
mov dword [esp + 0xd4], eax
mov eax, ecx
sub eax, 0xffffff80
shl eax, 4
add eax, dword [esp + 0x6c]
test edi, edi
mov dword [esp + 0xdc], edx
mov dword [esp + 0xd8], eax
je 0xc539dc
lea eax, [esp + 0xd0]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x1070]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x106c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1068]
mov dword [esp], eax
call dword [esi + 0x6108]
mov eax, dword [esp + 0x58]
test eax, eax
je 0xc53db8
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jle 0xc53a2e
mov edx, dword [esp + 0x54]
lea eax, [esp + 0xd0]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov eax, dword [ebx + 0x1070]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x106c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1068]
mov dword [esp], eax
call dword [esi + 0x6110]
mov edx, dword [esp + 0x58]
test edx, edx
je 0xc53dfb
lea esi, [esi]
mov eax, dword [esi + 0x6e48]
mov edx, dword [esp + 0x30]
add dword [ebx + 0x108c], 0x54
add dword [ebx + 0x10a0], 9
add dword [esp + 0x38], 0x10
add dword [esp + 0x34], 8
add dword [esp + 0x44], 8
mov dword [eax + edx], edi
add edi, 1
cmp dword [esi + 0x465c], edi
jg 0xc532d0
mov eax, dword [esi + 0x53c0]
test eax, eax
je 0xc53e3e
mov ecx, dword [esi + 0x4658]
lea eax, [ecx - 1]
cmp eax, dword [esp + 0x3c]
je 0xc53bc5
mov edi, dword [esp + 0x3c]
imul eax, dword [esp + 0x40], 0x3c
add edi, 1
mov dword [esp + 0x30], edi
mov edi, dword [esi + 0x6e4c]
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + eax + 0x44bc]
mov edi, dword [edi + edx*4]
mov eax, ecx
sar eax, 1
movzx edx, byte [edi + ecx + 0x1f]
mov byte [edi + ecx + 0x20], dl
mov edx, dword [esp + 0x30]
mov edi, dword [esi + 0x6e50]
mov edi, dword [edi + edx*4]
movzx edx, byte [edi + eax + 0xf]
mov byte [edi + eax + 0x10], dl
mov edx, dword [esp + 0x30]
mov edi, dword [esi + 0x6e54]
mov edi, dword [edi + edx*4]
movzx edx, byte [edi + eax + 0xf]
mov byte [edi + eax + 0x10], dl
mov edx, dword [esp + 0x30]
mov edi, dword [esi + 0x6e4c]
mov edi, dword [edi + edx*4]
movzx edx, byte [edi + ecx + 0x1f]
mov byte [edi + ecx + 0x21], dl
mov edx, dword [esp + 0x30]
mov edi, dword [esi + 0x6e50]
mov edi, dword [edi + edx*4]
movzx edx, byte [edi + eax + 0xf]
mov byte [edi + eax + 0x11], dl
mov edx, dword [esp + 0x30]
mov edi, dword [esi + 0x6e54]
mov edi, dword [edi + edx*4]
movzx edx, byte [edi + eax + 0xf]
mov byte [edi + eax + 0x11], dl
mov edi, dword [esi + 0x6e4c]
mov edx, dword [esp + 0x30]
mov edi, dword [edi + edx*4]
movzx edx, byte [edi + ecx + 0x1f]
mov byte [edi + ecx + 0x22], dl
mov edx, dword [esp + 0x30]
mov edi, dword [esi + 0x6e50]
mov edi, dword [edi + edx*4]
movzx edx, byte [edi + eax + 0xf]
mov byte [edi + eax + 0x12], dl
mov edx, dword [esp + 0x30]
mov edi, dword [esi + 0x6e54]
mov edi, dword [edi + edx*4]
movzx edx, byte [edi + eax + 0xf]
mov byte [edi + eax + 0x12], dl
mov edx, dword [esp + 0x30]
mov edi, dword [esi + 0x6e4c]
mov edi, dword [edi + edx*4]
movzx edx, byte [edi + ecx + 0x1f]
mov byte [edi + ecx + 0x23], dl
mov edi, dword [esp + 0x30]
mov ecx, dword [esi + 0x6e50]
mov ecx, dword [ecx + edi*4]
movzx edi, byte [ecx + eax + 0xf]
mov edx, edi
mov edi, dword [esp + 0x30]
mov byte [ecx + eax + 0x13], dl
mov ecx, dword [esi + 0x6e54]
mov edx, dword [ecx + edi*4]
movzx ecx, byte [edx + eax + 0xf]
mov byte [edx + eax + 0x13], cl
mov ecx, dword [esi + 0x4658]
mov eax, dword [esi + 0x6e2c]
mov edx, dword [ebx + 0x1090]
mov edi, dword [ebx + 0x108c]
imul edx, eax
imul edx, edx, 0x54
lea edx, [edi + edx + 0x54]
mov dword [ebx + 0x108c], edx
mov edx, dword [esp + 0x3c]
lea eax, [eax + edx + 1]
cmp eax, ecx
mov dword [esp + 0x3c], eax
jge 0xc53e87
mov edx, eax
mov edi, dword [esi + 0x45c0]
sar edx, 0x1f
idiv dword [esp + 0xcc]
mov dword [esp + 0x40], edi
mov edi, dword [esi + 0x45bc]
mov dword [esp + 0xc8], edi
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x6e78]
lea eax, [edx + eax*4]
mov dword [ebx + 0x1104], eax
imul eax, dword [esp + 0x40], 0x3c
add eax, esi
mov edi, dword [eax + 0x44c4]
mov eax, dword [eax + 0x44d0]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x54], eax
test edi, edi
jle 0xc530d0
mov eax, dword [esp + 0x3c]
lea ebp, [eax*4 - 4]
add ebp, dword [esi + 0x6e48]
jmp 0xc530d0
mov ecx, dword [esi + 0x45c0]
imul edx, ecx, 0x3c
mov dword [esp + 0x40], ecx
add edx, esi
mov ecx, dword [esp + 0x38]
add ecx, dword [edx + 0x44d4]
mov dword [ebx + 0x102c], ecx
mov eax, dword [edx + 0x44d8]
add eax, dword [esp + 0x34]
mov dword [ebx + 0x1030], eax
mov eax, dword [esp + 0x34]
add eax, dword [edx + 0x44dc]
mov dword [ebx + 0x1034], eax
imul eax, dword [esp + 0x40], 0x3c
mov eax, dword [esi + eax + 0x44f0]
or dword [ebx + 0x1108], eax
jmp 0xc53409
mov dword [esp + 0x58], 0
jmp 0xc5346b
mov eax, dword [esi + 0x45c4]
mov dword [esp + 0x40], eax
imul edx, eax, 0x3c
jmp 0xc53c7d
mov ebx, dword [esp + 0x40]
jmp 0xc5333b
test edi, edi
je 0xc53d1a
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
shl eax, 4
add eax, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x1068]
mov dword [esp], eax
call dword [esi + 0x6118]
mov eax, dword [esp + 0x58]
test eax, eax
je 0xc53d8a
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0xc53d50
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
shl eax, 4
add eax, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x1068]
mov dword [esp], eax
call dword [esi + 0x6120]
mov eax, dword [esp + 0x58]
test eax, eax
jne 0xc53a40
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
add eax, 0x40
shl eax, 4
add eax, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x1068]
mov dword [esp], eax
call dword [esi + 0x6124]
jmp 0xc53a40
mov eax, dword [esp + 0x48]
add eax, 0x40
shl eax, 4
add eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1068]
mov dword [esp], eax
call dword [esi + 0x611c]
jmp 0xc53d22
lea eax, [esp + 0xd0]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x1070]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x106c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1068]
mov dword [esp], eax
call dword [esi + 0x610c]
jmp 0xc539e8
lea eax, [esp + 0xd0]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x1070]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x106c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1068]
mov dword [esp], eax
call dword [esi + 0x6114]
jmp 0xc53a40
mov eax, dword [ebx + 0x1070]
add eax, 8
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x106c]
add eax, 8
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x1068]
add eax, 0x10
mov dword [esp + 4], eax
imul eax, dword [esp + 0xc8], 0x3c
lea eax, [esi + eax + 0x44bc]
mov dword [esp], eax
call fcn.00c5cfc0
mov ecx, dword [esi + 0x4658]
jmp 0xc53bc5
mov dword [esp + 4], 0xffffffff
mov eax, dword [esi + 0x6e74]
mov dword [esp], eax
call sub.KERNEL32.dll_WaitForSingleObject
sub esp, 8
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
imul eax, dword [esi + 0x45c0], 0x3c
mov eax, dword [esi + eax + 0x44bc]
mov dword [esp + 4], 0x7f
add eax, 5
mov dword [esp + 8], eax
mov eax, dword [esi + 0x6e4c]
mov eax, dword [eax]
add eax, 0x1f
mov dword [esp], eax
call sub.msvcrt.dll_memset
imul eax, dword [esi + 0x45c0], 0x3c
mov eax, dword [esi + eax + 0x44bc]
mov dword [esp + 4], 0x7f
sar eax, 1
add eax, 5
mov dword [esp + 8], eax
mov eax, dword [esi + 0x6e50]
mov eax, dword [eax]
add eax, 0xf
mov dword [esp], eax
call sub.msvcrt.dll_memset
imul eax, dword [esi + 0x45c0], 0x3c
mov eax, dword [esi + eax + 0x44bc]
mov dword [esp + 4], 0x7f
sar eax, 1
add eax, 5
mov dword [esp + 8], eax
mov eax, dword [esi + 0x6e54]
mov eax, dword [eax]
add eax, 0xf
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov edx, dword [esi + 0x4658]
cmp edx, 1
jle 0xc53f83
mov eax, 1
mov edx, dword [esi + 0x6e4c]
mov edx, dword [edx + eax*4]
mov byte [edx + 0x1f], 0x81
mov edx, dword [esi + 0x6e50]
mov edx, dword [edx + eax*4]
mov byte [edx + 0xf], 0x81
mov edx, dword [esi + 0x6e54]
mov edx, dword [edx + eax*4]
add eax, 1
mov byte [edx + 0xf], 0x81
mov edx, dword [esi + 0x4658]
cmp edx, eax
jg 0xc53f4f
test edx, edx
jle 0xc53fe4
xor eax, eax
mov edx, dword [esi + 0x6e58]
mov edx, dword [edx + eax*4]
mov dword [edx], 0x81818181
mov dword [edx + 4], 0x81818181
mov dword [edx + 8], 0x81818181
mov dword [edx + 0xc], 0x81818181
mov edx, dword [esi + 0x6e5c]
mov edx, dword [edx + eax*4]
mov dword [edx], 0x81818181
mov dword [edx + 4], 0x81818181
mov edx, dword [esi + 0x6e60]
mov edx, dword [edx + eax*4]
add eax, 1
mov dword [edx], 0x81818181
mov dword [edx + 4], 0x81818181
cmp dword [esi + 0x4658], eax
jg 0xc53f89
lea eax, [esi + 0x1400]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00c42f80
jmp 0xc52d38