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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff6c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov esi, dword [ebp + 8]
xor eax, eax
push ebp
push 0x633d74
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 9], 0
xor ebx, ebx
mov eax, dword [ebp - 8]
movzx eax, word [eax + 5]
imul eax, eax, 0x1d5
mov edx, dword [0x83999c]
lea eax, reloc.kernel32.dll_DeleteCriticalSection
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
movzx eax, word [eax + 5]
imul eax, eax, 0x1d5
mov edx, dword [0x83999c]
lea eax, reloc.kernel32.dll_DeleteCriticalSection
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov al, byte [eax + 8]
test al, al
jbe 0x6320b1
mov edx, dword [ebp - 0x10]
cmp byte [edx + 3], 0
jne 0x6320b8
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x6320d9
cmp al, 3
ja 0x6320c5
mov dword [ebp - 0x2c], 1
jmp 0x6320d9
cmp al, 6
ja 0x6320d2
mov dword [ebp - 0x2c], 2
jmp 0x6320d9
mov dword [ebp - 0x2c], 3
imul eax, dword [ebp - 0x2c], reloc.kernel32.dll_DeleteCriticalSection
mov edx, dword [ebp - 0x10]
lea eax, [edx + eax + 0x77]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x10]
mov al, byte [eax + 6]
test al, al
jbe 0x63227e
mov edx, dword [ebp - 0x10]
cmp byte [edx + 7], 0
jbe 0x63227e
dec eax
sub al, 3
jb 0x632115
je 0x63220d
jmp 0x632280
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x10]
mov al, byte [eax + 6]
cmp al, 3
jne 0x632197
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 7]
push eax
lea eax, [ebp - 0x20]
push eax
push 0
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 8]
movzx edx, word [eax + 5]
mov eax, dword [ebp - 4]
call fcn.0062e91c
test al, al
jne 0x632172
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 7]
push eax
lea eax, [ebp - 0x20]
push eax
push 0
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 8]
movzx edx, word [eax + 5]
mov eax, dword [ebp - 4]
call fcn.0062e6a0
test al, al
je 0x632280
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 7]
push eax
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 8]
movzx edx, word [eax + 5]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.0062ede0
mov bl, 1
jmp 0x632280
and eax, 0xff
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 7]
push eax
lea eax, [ebp - 0x20]
push eax
push 1
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 8]
movzx edx, word [eax + 5]
mov eax, dword [ebp - 4]
call fcn.0062e91c
test al, al
jne 0x6321eb
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 7]
push eax
lea eax, [ebp - 0x20]
push eax
push 1
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 8]
movzx edx, word [eax + 5]
mov eax, dword [ebp - 4]
call fcn.0062e6a0
test al, al
je 0x632280
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 7]
push eax
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 8]
movzx edx, word [eax + 5]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.0062ede0
mov bl, 1
jmp 0x632280
mov dword [ebp - 0x1c], 5
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 7]
push eax
lea eax, [ebp - 0x20]
push eax
push 1
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 8]
movzx edx, word [eax + 5]
mov eax, dword [ebp - 4]
call fcn.0062e91c
test al, al
jne 0x63225c
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 7]
push eax
lea eax, [ebp - 0x20]
push eax
push 1
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 8]
movzx edx, word [eax + 5]
mov eax, dword [ebp - 4]
call fcn.0062e6a0
test al, al
je 0x632280
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 7]
push eax
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 8]
movzx edx, word [eax + 5]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.0062ede0
mov bl, 1
jmp 0x632280
mov bl, 1
mov eax, ebx
xor al, 1
mov byte [esi], al
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x10], 0
je 0x632296
test bl, bl
jne 0x632296
mov byte [esi], 1
test bl, bl
je 0x633d49
mov eax, dword [ebp - 0x14]
mov cl, byte [eax + 0x1aa]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0062e3e4
mov ebx, eax
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.0062dfd8
mov ebx, eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 8]
mov eax, dword [ebp - 0x14]
call fcn.0062e04c
mov dword [ebp - 0x6c], eax
fild dword [ebp - 0x6c]
fdiv dword [0x633d88]
mov eax, ebx
cdq
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
fild qword [ebp - 0x74]
fmulp st(1)
call fcn.0040340c
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
push edx
push eax
push 0
push 0x7fffffff
call fcn.00435104
mov ebx, eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ab], 0
je 0x633b99
mov eax, dword [ebp - 0x14]
mov al, byte [eax]
sub al, 1
jb 0x63232f
je 0x632e37
jmp 0x633d49
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ad], 0
je 0x632429
mov eax, 0x64
call fcn.004039ac
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 8]
movzx ecx, byte [ecx + 7]
imul edx, ecx
mov ecx, dword [ebp - 0x14]
add edx, dword [ecx + reloc.kernel32.dll_DeleteCriticalSection]
cmp eax, edx
jge 0x632429
mov dl, 1
mov eax, dword [0x41e708]
call fcn.004041c0
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
push 1
mov eax, dword [ebp - 0x30]
push eax
push 0
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
mov eax, dword [ebp - 4]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 4]
call fcn.0070b244
mov eax, dword [ebp - 0x30]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x632421
inc esi
mov dword [ebp - 0x4c], 0
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
call fcn.004212e4
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
test al, al
je 0x63241b
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 4]
je 0x63241b
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xe78], 0
je 0x63241b
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0x64]
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0xda2]
sub al, 2
jae 0x632415
push 0
push 0
push 0
push 0
push 0
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
mov ecx, 0x232
mov eax, dword [ebp - 0x18]
call fcn.0070a7c0
mov byte [ebp - 9], 1
jmp 0x632421
inc dword [ebp - 0x4c]
dec esi
jne 0x6323b3
mov eax, dword [ebp - 0x30]
call fcn.004041f0
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
je 0x632446
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp byte [eax + 0xe78], 0
je 0x632446
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1b6], 0
je 0x6327f2
mov eax, 0x64
call fcn.004039ac
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 8]
movzx ecx, byte [ecx + 7]
imul edx, ecx
mov ecx, dword [ebp - 0x14]
add edx, dword [ecx + reloc.kernel32.dll_DeleteCriticalSection]
cmp eax, edx
jge 0x6327f2
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x14]
mov eax, dword [0x8391d8]
mov eax, dword [eax]
call fcn.0076be5c
mov esi, eax
test esi, esi
je 0x6327f2
cmp dword [esi + 0x2c], 0x96
jge 0x6324bd
cmp dword [esi + 0x2c], 0x1e
jge 0x6324b6
mov edi, 2
jmp 0x6324c2
mov edi, 0x14
jmp 0x6324c2
mov edi, 0x32
mov eax, dword [esi + 0x28]
sub eax, edi
dec eax
call fcn.004039ac
add eax, edi
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x2c]
sub eax, edi
dec eax
call fcn.004039ac
add edi, eax
mov dword [ebp - 0x40], edi
mov eax, dword [ebp - 0x14]
cmp dword [eax + reloc.kernel32.dll_DeleteCriticalSection], 0
jne 0x63258a
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov edx, dword [ebp - 4]
call fcn.0076b400
test al, al
je 0x6327ee
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov dword [ebp - 0x34], eax
mov eax, dword [0x83a4b8]
cmp byte [eax + 0x7557], 0
je 0x632549
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x270
mov eax, dword [ebp - 4]
call fcn.00711ce8
jmp 0x632562
push 0
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x270
mov eax, dword [ebp - 4]
call fcn.00712628
push 0x22c
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
mov edx, dword [ebp + 0x14]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.006e1f74
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x34]
mov dword [eax + reloc.kernel32.dll_DeleteCriticalSection], edx
jmp 0x6327ee
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
je 0x6326d5
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
call fcn.0071acc4
test al, al
jne 0x6326d5
mov eax, dword [ebp - 0x40]
push eax
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x3c]
call fcn.0076b400
test al, al
je 0x6326d5
mov eax, dword [0x83a4b8]
cmp byte [eax + 0x7557], 0
je 0x632627
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dl, byte [eax + 0x23]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov al, byte [eax + 0x22]
call fcn.004087f4
movzx eax, ax
push eax
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
call fcn.00408808
push eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push eax
push 0
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 8]
mov ecx, eax
add ecx, ecx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov edx, 0x24a
call fcn.00711ce8
jmp 0x632674
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dl, byte [eax + 0x23]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov al, byte [eax + 0x22]
call fcn.004087f4
movzx eax, ax
push eax
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
call fcn.00408808
push eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push eax
push 0
push 0
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 8]
mov ecx, eax
add ecx, ecx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov edx, 0x24a
call fcn.00712628
mov eax, dword [0x83a4b8]
cmp byte [eax + 0x7557], 0
je 0x63269d
push 0
push 0
push 0
push 0
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
xor ecx, ecx
mov edx, 0x26f
call fcn.00711ce8
jmp 0x6326b8
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
xor ecx, ecx
mov edx, 0x26f
call fcn.00712628
mov eax, dword [ebp - 0x40]
push eax
push 1
push 1
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x3c]
call fcn.006e2438
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 4]
call fcn.0076b400
test al, al
je 0x6327ee
mov eax, dword [0x83a4b8]
cmp byte [eax + 0x7557], 0
je 0x63274c
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dl, byte [eax + 0x23]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov al, byte [eax + 0x22]
call fcn.004087f4
movzx eax, ax
push eax
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
call fcn.00408808
push eax
mov eax, dword [ebp - 4]
push eax
push 0
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 8]
mov ecx, eax
add ecx, ecx
mov edx, 0x24a
mov eax, dword [ebp - 4]
call fcn.00711ce8
jmp 0x632795
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dl, byte [eax + 0x23]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov al, byte [eax + 0x22]
call fcn.004087f4
movzx eax, ax
push eax
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
call fcn.00408808
push eax
mov eax, dword [ebp - 4]
push eax
push 0
push 0
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 8]
mov ecx, eax
add ecx, ecx
mov edx, 0x24a
mov eax, dword [ebp - 4]
call fcn.00712628
mov eax, dword [0x83a4b8]
cmp byte [eax + 0x7557], 0
je 0x6327bc
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x26f
mov eax, dword [ebp - 4]
call fcn.00711ce8
jmp 0x6327d5
push 0
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x26f
mov eax, dword [ebp - 4]
call fcn.00712628
mov eax, dword [ebp - 0x40]
push eax
push 1
push 1
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x14]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 4]
call fcn.006e2438
mov byte [ebp - 9], 1
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1c3], 0
je 0x632b00
mov eax, dword [ebp - 8]
mov al, byte [eax + 8]
test al, al
jbe 0x632815
mov edx, dword [ebp - 0x10]
cmp byte [edx + 3], 0
jne 0x63281c
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x632843
mov edx, eax
dec edx
sub dl, 3
jae 0x63282d
mov dword [ebp - 0x24], 1
jmp 0x632843
add al, 0xfc
sub al, 3
jae 0x63283c
mov dword [ebp - 0x24], 2
jmp 0x632843
mov dword [ebp - 0x24], 3
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
cmp dword [eax + edx*4 + reloc.kernel32.dll_DeleteCriticalSection], 0
je 0x632b00
mov byte [ebp - 0x4e], 0
xor eax, eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1c8], 0
je 0x632aa3
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x6328fe
inc esi
mov dword [ebp - 0x4c], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov edx, dword [ebp - 0x4c]
call fcn.004212e4
mov edi, eax
lea eax, [ebp - 0x54]
mov edx, dword [edi + 0x18]
call fcn.004051d8
lea edx, [ebp - 0x78]
mov eax, dword [ebp - 0x54]
call fcn.0077b4d0
mov edx, dword [ebp - 0x78]
lea eax, [ebp - 0x54]
call fcn.004051d8
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov eax, dword [eax + edx*4 + reloc.kernel32.dll_DeleteCriticalSection]
lea edx, [ebp - 0x7c]
call fcn.0077b4d0
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x54]
call fcn.0040b368
test eax, eax
jne 0x6328f8
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
cmp eax, dword [ebp - 0x5c]
jg 0x6328f8
mov byte [ebp - 0x4e], 1
jmp 0x6328fe
inc dword [ebp - 0x4c]
dec esi
jne 0x632889
cmp byte [ebp - 0x4e], 0
je 0x632aa3
lea ecx, [ebp - 0x48]
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 4]
call fcn.006bf1fc
push 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
call fcn.0076b54c
test al, al
jne 0x6329da
mov byte [ebp - 0x4d], 0
xor esi, esi
push esi
push 1
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
call fcn.0076dd70
test al, al
je 0x632983
push 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
call fcn.0076b54c
test al, al
je 0x632983
mov byte [ebp - 0x4d], 1
jmp 0x632989
inc esi
cmp esi, 8
jne 0x63293a
cmp byte [ebp - 0x4d], 0
jne 0x6329da
xor esi, esi
push esi
push 2
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
call fcn.0076dd70
test al, al
je 0x6329d4
push 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
call fcn.0076b54c
test al, al
jne 0x6329da
inc esi
cmp esi, 8
jne 0x632991
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x632a9f
inc esi
mov dword [ebp - 0x4c], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov edx, dword [ebp - 0x4c]
call fcn.004212e4
mov edi, eax
lea eax, [ebp - 0x54]
mov edx, dword [edi + 0x18]
call fcn.004051d8
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 0x54]
call fcn.0077b4d0
mov edx, dword [ebp - 0x80]
lea eax, [ebp - 0x54]
call fcn.004051d8
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov eax, dword [eax + edx*4 + reloc.kernel32.dll_DeleteCriticalSection]
lea edx, [ebp - 0x84]
call fcn.0077b4d0
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x54]
call fcn.0040b368
test eax, eax
jne 0x632a95
mov eax, edi
mov edx, dword [eax]
call dword [edx + 0x80]
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [edi + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x44]
mov edx, edi
call fcn.0076b400
test al, al
je 0x632a95
mov eax, dword [ebp - 0x48]
push eax
push 1
push 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x44]
mov eax, edi
call fcn.006e2438
inc dword [ebp - 0x4c]
dec esi
jne 0x6329f7
mov byte [ebp - 9], 1
cmp byte [ebp - 0x4e], 0
jne 0x632b00
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 7]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
push eax
push 0xd2f00
mov eax, dword [ebp - 8]
mov ax, word [eax + 5]
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov edx, dword [eax + edx*4 + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [eax + 7]
mov eax, dword [ebp - 4]
call fcn.006f1f6c
mov edi, eax
test edi, edi
je 0x632b00
mov eax, dword [0x83a4b8]
mov al, byte [eax + 0x6380]
mov byte [edi + 0xf73], al
mov byte [ebp - 9], 1
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1d9], 0
je 0x632ba4
mov eax, 0x64
call fcn.004039ac
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 8]
movzx ecx, byte [ecx + 7]
imul edx, ecx
mov ecx, dword [ebp - 0x14]
add edx, dword [ecx + reloc.kernel32.dll_DeleteCriticalSection]
cmp eax, edx
jge 0x632ba4
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jbe 0x632b64
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 4]
mov dword [eax], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1e6], 0
je 0x632b7f
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
jmp 0x632b8c
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x74]
test al, al
je 0x632ba4
mov byte [ebp - 9], 1
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
call fcn.007292e0
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x224], 0
je 0x632cea
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jbe 0x632bde
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 4]
mov dword [eax], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x229], 0
je 0x632c1f
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
jne 0x632c10
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 4]
mov dword [eax], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
jmp 0x632c2c
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x74]
test al, al
je 0x632cea
mov byte [ebp - 9], 1
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x1aa]
sub al, 1
jb 0x632c50
je 0x632c7c
dec al
je 0x632ca8
jmp 0x632cd2
mov eax, dword [ebp - 4]
push dword [eax + 0x14c]
push dword [eax + 0x148]
mov eax, dword [ebp - 4]
call fcn.0062e30c
mov edx, eax
add edx, 0xf
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov dword [ebp - 0x28], eax
jmp 0x632cd2
mov eax, dword [ebp - 4]
push dword [eax + 0x154]
push dword [eax + 0x150]
mov eax, dword [ebp - 4]
call fcn.0062e30c
mov edx, eax
add edx, 0xf
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov dword [ebp - 0x28], eax
jmp 0x632cd2
mov eax, dword [ebp - 4]
push dword [eax + 0x15c]
push dword [eax + 0x158]
mov eax, dword [ebp - 4]
call fcn.0062e30c
mov edx, eax
add edx, 0xf
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov dl, byte [ebp - 0x2c]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [ebp - 8]
call fcn.007153e0
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x218], 0
je 0x633d49
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x1aa]
sub al, 1
jb 0x632d12
je 0x632d47
dec al
je 0x632d7c
jmp 0x632daf
mov ecx, dword [ebp - 8]
mov edx, 0xa
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov esi, eax
mov eax, dword [ebp - 4]
push dword [eax + 0x14c]
push dword [eax + 0x148]
mov eax, dword [ebp - 4]
call fcn.0062e30c
movzx eax, ax
shr eax, 1
add esi, eax
mov dword [ebp - 0x28], esi
jmp 0x632daf
mov ecx, dword [ebp - 8]
mov edx, 0xa
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov esi, eax
mov eax, dword [ebp - 4]
push dword [eax + 0x154]
push dword [eax + 0x150]
mov eax, dword [ebp - 4]
call fcn.0062e30c
movzx eax, ax
shr eax, 1
add esi, eax
mov dword [ebp - 0x28], esi
jmp 0x632daf
mov ecx, dword [ebp - 8]
mov edx, 0xa
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov esi, eax
mov eax, dword [ebp - 4]
push dword [eax + 0x15c]
push dword [eax + 0x158]
mov eax, dword [ebp - 4]
call fcn.0062e30c
movzx eax, ax
shr eax, 1
add esi, eax
mov dword [ebp - 0x28], esi
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
push eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 0x28]
call fcn.004350fc
push eax
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
call fcn.0076aea8
test eax, eax
je 0x633d49
mov edx, dword [ebp - 8]
mov dx, word [edx + 5]
mov word [eax + 0x46], dx
mov edx, dword [ebp - 0x14]
mov dl, byte [edx + 0x221]
mov byte [eax + 0x3c], dl
mov edx, dword [ebp - 0x14]
mov dl, byte [edx + 0x222]
mov byte [eax + 0x3d], dl
mov edx, dword [ebp - 0x14]
mov dl, byte [edx + 0x223]
mov byte [eax + 0x3e], dl
mov edx, dword [ebp - 4]
mov edx, dword [edx + reloc.kernel32.dll_DeleteCriticalSection]
xchg edx, eax
call fcn.0042111c
jmp 0x633d49
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
je 0x632e54
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp byte [eax + 0xe78], 0
je 0x632e54
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ad], 0
je 0x632fbc
mov eax, 0x64
call fcn.004039ac
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 8]
movzx ecx, byte [ecx + 7]
imul edx, ecx
mov ecx, dword [ebp - 0x14]
add edx, dword [ecx + reloc.kernel32.dll_DeleteCriticalSection]
cmp eax, edx
jge 0x632fbc
mov dl, 1
mov eax, dword [0x41e708]
call fcn.004041c0
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jne 0x632ed8
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x30]
push eax
push 0
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
mov eax, dword [ebp - 4]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 4]
call fcn.0070b244
jmp 0x632f03
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x30]
push eax
push 0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 4]
call fcn.0070b244
mov eax, dword [ebp - 0x30]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x632fb4
inc esi
mov dword [ebp - 0x4c], 0
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
call fcn.004212e4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xe78], 0
je 0x632faa
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 4]
je 0x632faa
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
test al, al
je 0x632faa
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0x64]
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0xda2]
sub al, 2
jae 0x632f7c
push 0
push 0
push 0
push 0
push 0
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
mov ecx, 0x232
mov eax, dword [ebp - 0x18]
call fcn.0070a7c0
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jbe 0x632fa6
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x18]
mov dword [eax], edx
mov byte [ebp - 9], 1
inc dword [ebp - 0x4c]
dec esi
jne 0x632f1a
mov eax, dword [ebp - 0x30]
call fcn.004041f0
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1b6], 0
je 0x633418
mov eax, 0x64
call fcn.004039ac
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 8]
movzx ecx, byte [ecx + 7]
imul edx, ecx
mov ecx, dword [ebp - 0x14]
add edx, dword [ecx + reloc.kernel32.dll_DeleteCriticalSection]
cmp eax, edx
jge 0x633418
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x14]
mov eax, dword [0x8391d8]
mov eax, dword [eax]
call fcn.0076be5c
mov esi, eax
test esi, esi
je 0x633418
cmp dword [esi + 0x2c], 0x96
jge 0x633033
cmp dword [esi + 0x2c], 0x1e
jge 0x63302c
mov edi, 2
jmp 0x633038
mov edi, 0x14
jmp 0x633038
mov edi, 0x32
mov eax, dword [esi + 0x28]
sub eax, edi
dec eax
call fcn.004039ac
add eax, edi
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x2c]
sub eax, edi
dec eax
call fcn.004039ac
add edi, eax
mov dword [ebp - 0x40], edi
mov eax, dword [ebp - 0x14]
cmp dword [eax + reloc.kernel32.dll_DeleteCriticalSection], 0
jne 0x633104
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov edx, dword [ebp - 4]
call fcn.0076b400
test al, al
je 0x633418
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov dword [ebp - 0x34], eax
mov eax, dword [0x83a4b8]
cmp byte [eax + 0x7557], 0
je 0x6330bf
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x270
mov eax, dword [ebp - 4]
call fcn.00711ce8
jmp 0x6330d8
push 0
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x270
mov eax, dword [ebp - 4]
call fcn.00712628
push 0x22c
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
mov edx, dword [ebp + 0x14]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.006e1f74
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x34]
mov dword [eax + reloc.kernel32.dll_DeleteCriticalSection], edx
mov byte [ebp - 9], 1
jmp 0x633418
mov dl, 1
mov eax, dword [0x41e708]
call fcn.004041c0
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jne 0x63314a
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x30]
push eax
push 1
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
mov eax, dword [ebp - 4]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 4]
call fcn.0070b244
jmp 0x633175
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x30]
push eax
push 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 4]
call fcn.0070b244
mov eax, dword [ebp - 0x30]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x633307
inc esi
mov dword [ebp - 0x4c], 0
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
call fcn.004212e4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xe78], 0
jne 0x6332fd
mov eax, dword [ebp - 0x18]
call fcn.0071acc4
test al, al
jne 0x6332fd
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x18]
je 0x6332fd
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x18]
call fcn.0076b400
test al, al
je 0x6332f9
mov eax, dword [0x83a4b8]
cmp byte [eax + 0x7557], 0
je 0x633254
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dl, byte [eax + 0x23]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov al, byte [eax + 0x22]
call fcn.004087f4
movzx eax, ax
push eax
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
call fcn.00408808
push eax
mov eax, dword [ebp - 0x18]
push eax
push 0
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 8]
mov ecx, eax
add ecx, ecx
mov edx, 0x24a
mov eax, dword [ebp - 0x18]
call fcn.00711ce8
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x26f
mov eax, dword [ebp - 0x18]
call fcn.00711ce8
jmp 0x6332b6
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dl, byte [eax + 0x23]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov al, byte [eax + 0x22]
call fcn.004087f4
movzx eax, ax
push eax
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
call fcn.00408808
push eax
mov eax, dword [ebp - 0x18]
push eax
push 0
push 0
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 8]
mov ecx, eax
add ecx, ecx
mov edx, 0x24a
mov eax, dword [ebp - 0x18]
call fcn.00712628
push 0
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x26f
mov eax, dword [ebp - 0x18]
call fcn.00712628
mov eax, dword [ebp - 0x40]
push eax
push 1
push 1
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x14]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
call fcn.006e2438
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jbe 0x6332f9
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x18]
mov dword [eax], edx
mov byte [ebp - 9], 1
inc dword [ebp - 0x4c]
dec esi
jne 0x63318c
mov eax, dword [ebp - 0x30]
call fcn.004041f0
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 4]
call fcn.0076b400
test al, al
je 0x633418
mov eax, dword [0x83a4b8]
cmp byte [eax + 0x7557], 0
je 0x63339d
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dl, byte [eax + 0x23]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov al, byte [eax + 0x22]
call fcn.004087f4
movzx eax, ax
push eax
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
call fcn.00408808
push eax
mov eax, dword [ebp - 4]
push eax
push 0
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 8]
mov ecx, eax
add ecx, ecx
mov edx, 0x24a
mov eax, dword [ebp - 4]
call fcn.00711ce8
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x26f
mov eax, dword [ebp - 4]
call fcn.00711ce8
jmp 0x6333ff
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dl, byte [eax + 0x23]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov al, byte [eax + 0x22]
call fcn.004087f4
movzx eax, ax
push eax
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
call fcn.00408808
push eax
mov eax, dword [ebp - 4]
push eax
push 0
push 0
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 8]
mov ecx, eax
add ecx, ecx
mov edx, 0x24a
mov eax, dword [ebp - 4]
call fcn.00712628
push 0
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x26f
mov eax, dword [ebp - 4]
call fcn.00712628
mov eax, dword [ebp - 0x40]
push eax
push 1
push 1
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x14]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 4]
call fcn.006e2438
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1c3], 0
je 0x633740
mov eax, dword [ebp - 8]
mov al, byte [eax + 8]
test al, al
jbe 0x63343b
mov edx, dword [ebp - 0x10]
cmp byte [edx + 3], 0
jne 0x633442
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x633469
mov edx, eax
dec edx
sub dl, 3
jae 0x633453
mov dword [ebp - 0x24], 1
jmp 0x633469
add al, 0xfc
sub al, 3
jae 0x633462
mov dword [ebp - 0x24], 2
jmp 0x633469
mov dword [ebp - 0x24], 3
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
cmp dword [eax + edx*4 + reloc.kernel32.dll_DeleteCriticalSection], 0
je 0x633740
mov byte [ebp - 0x4e], 0
xor eax, eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1c8], 0
je 0x6336e3
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x633538
inc esi
mov dword [ebp - 0x4c], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov edx, dword [ebp - 0x4c]
call fcn.004212e4
mov edi, eax
lea eax, [ebp - 0x54]
mov edx, dword [edi + 0x18]
call fcn.004051d8
lea edx, [ebp - 0x88]
mov eax, dword [ebp - 0x54]
call fcn.0077b4d0
mov edx, dword [ebp - 0x88]
lea eax, [ebp - 0x54]
call fcn.004051d8
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov eax, dword [eax + edx*4 + reloc.kernel32.dll_DeleteCriticalSection]
lea edx, [ebp - 0x8c]
call fcn.0077b4d0
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
call fcn.0040b368
test eax, eax
jne 0x63352e
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
cmp eax, dword [ebp - 0x5c]
jg 0x63352e
mov byte [ebp - 0x4e], 1
jmp 0x633538
inc dword [ebp - 0x4c]
dec esi
jne 0x6334b3
cmp byte [ebp - 0x4e], 0
je 0x6336e3
lea ecx, [ebp - 0x48]
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 4]
call fcn.006bf1fc
push 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
call fcn.0076b54c
test al, al
jne 0x633614
mov byte [ebp - 0x4d], 0
xor esi, esi
push esi
push 1
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
call fcn.0076dd70
test al, al
je 0x6335bd
push 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
call fcn.0076b54c
test al, al
je 0x6335bd
mov byte [ebp - 0x4d], 1
jmp 0x6335c3
inc esi
cmp esi, 8
jne 0x633574
cmp byte [ebp - 0x4d], 0
jne 0x633614
xor esi, esi
push esi
push 2
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
call fcn.0076dd70
test al, al
je 0x63360e
push 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
call fcn.0076b54c
test al, al
jne 0x633614
inc esi
cmp esi, 8
jne 0x6335cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x6336df
inc esi
mov dword [ebp - 0x4c], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov edx, dword [ebp - 0x4c]
call fcn.004212e4
mov edi, eax
lea eax, [ebp - 0x54]
mov edx, dword [edi + 0x18]
call fcn.004051d8
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 0x54]
call fcn.0077b4d0
mov edx, dword [ebp - 0x90]
lea eax, [ebp - 0x54]
call fcn.004051d8
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov eax, dword [eax + edx*4 + reloc.kernel32.dll_DeleteCriticalSection]
lea edx, [ebp - 0x94]
call fcn.0077b4d0
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x54]
call fcn.0040b368
test eax, eax
jne 0x6336d5
mov eax, edi
mov edx, dword [eax]
call dword [edx + 0x80]
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [edi + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x44]
mov edx, edi
call fcn.0076b400
test al, al
je 0x6336d5
mov eax, dword [ebp - 0x48]
push eax
push 1
push 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x44]
mov eax, edi
call fcn.006e2438
inc dword [ebp - 0x4c]
dec esi
jne 0x633631
mov byte [ebp - 9], 1
cmp byte [ebp - 0x4e], 0
jne 0x633740
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 7]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
push eax
push 0xd2f00
mov eax, dword [ebp - 8]
mov ax, word [eax + 5]
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov edx, dword [eax + edx*4 + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [eax + 7]
mov eax, dword [ebp - 4]
call fcn.006f1f6c
mov edi, eax
test edi, edi
je 0x633740
mov eax, dword [0x83a4b8]
mov al, byte [eax + 0x6380]
mov byte [edi + 0xf73], al
mov byte [ebp - 9], 1
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1d9], 0
je 0x63388c
mov eax, 0x64
call fcn.004039ac
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 8]
movzx ecx, byte [ecx + 7]
imul edx, ecx
mov ecx, dword [ebp - 0x14]
add edx, dword [ecx + reloc.kernel32.dll_DeleteCriticalSection]
cmp eax, edx
jge 0x63388c
mov dl, 1
mov eax, dword [0x41e708]
call fcn.004041c0
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jne 0x6337c4
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x30]
push eax
push 1
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
mov eax, dword [ebp - 4]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 4]
call fcn.0070b244
jmp 0x6337ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x30]
push eax
push 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 4]
call fcn.0070b244
mov eax, dword [ebp - 0x30]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x633884
inc esi
mov dword [ebp - 0x4c], 0
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
call fcn.004212e4
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x63387e
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1e6], 0
je 0x633833
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
jmp 0x63383e
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x74]
test al, al
je 0x633854
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
call fcn.007292e0
mov byte [ebp - 9], 1
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jbe 0x63387e
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x18]
mov dword [eax], edx
inc dword [ebp - 0x4c]
dec esi
jne 0x633806
mov eax, dword [ebp - 0x30]
call fcn.004041f0
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x218], 0
je 0x6339d0
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x1aa]
sub al, 1
jb 0x6338b4
je 0x6338e9
dec al
je 0x63391e
jmp 0x633951
mov ecx, dword [ebp - 8]
mov edx, 0xa
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov esi, eax
mov eax, dword [ebp - 4]
push dword [eax + 0x14c]
push dword [eax + 0x148]
mov eax, dword [ebp - 4]
call fcn.0062e30c
movzx eax, ax
shr eax, 1
add esi, eax
mov dword [ebp - 0x28], esi
jmp 0x633951
mov ecx, dword [ebp - 8]
mov edx, 0xa
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov esi, eax
mov eax, dword [ebp - 4]
push dword [eax + 0x154]
push dword [eax + 0x150]
mov eax, dword [ebp - 4]
call fcn.0062e30c
movzx eax, ax
shr eax, 1
add esi, eax
mov dword [ebp - 0x28], esi
jmp 0x633951
mov ecx, dword [ebp - 8]
mov edx, 0xa
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov esi, eax
mov eax, dword [ebp - 4]
push dword [eax + 0x15c]
push dword [eax + 0x158]
mov eax, dword [ebp - 4]
call fcn.0062e30c
movzx eax, ax
shr eax, 1
add esi, eax
mov dword [ebp - 0x28], esi
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
push eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 0x28]
call fcn.004350fc
push eax
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
call fcn.0076aea8
test eax, eax
je 0x6339d0
mov edx, dword [ebp - 8]
mov dx, word [edx + 5]
mov word [eax + 0x46], dx
mov edx, dword [ebp - 0x14]
mov dl, byte [edx + 0x221]
mov byte [eax + 0x3c], dl
mov edx, dword [ebp - 0x14]
mov dl, byte [edx + 0x222]
mov byte [eax + 0x3d], dl
mov edx, dword [ebp - 0x14]
mov dl, byte [edx + 0x223]
mov byte [eax + 0x3e], dl
mov edx, dword [ebp - 4]
mov edx, dword [edx + reloc.kernel32.dll_DeleteCriticalSection]
xchg edx, eax
call fcn.0042111c
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x224], 0
je 0x633d49
mov dl, 1
mov eax, dword [0x41e708]
call fcn.004041c0
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jne 0x633a26
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x30]
push eax
push 1
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
mov eax, dword [ebp - 4]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 4]
call fcn.0070b244
jmp 0x633a51
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x30]
push eax
push 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 4]
call fcn.0070b244
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x1aa]
sub al, 1
jb 0x633a69
je 0x633a95
dec al
je 0x633ac1
jmp 0x633aeb
mov eax, dword [ebp - 4]
push dword [eax + 0x14c]
push dword [eax + 0x148]
mov eax, dword [ebp - 4]
call fcn.0062e30c
mov edx, eax
add edx, 0xf
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov dword [ebp - 0x28], eax
jmp 0x633aeb
mov eax, dword [ebp - 4]
push dword [eax + 0x154]
push dword [eax + 0x150]
mov eax, dword [ebp - 4]
call fcn.0062e30c
mov edx, eax
add edx, 0xf
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov dword [ebp - 0x28], eax
jmp 0x633aeb
mov eax, dword [ebp - 4]
push dword [eax + 0x15c]
push dword [eax + 0x158]
mov eax, dword [ebp - 4]
call fcn.0062e30c
mov edx, eax
add edx, 0xf
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0062e0c8
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x30]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x633b8c
inc esi
mov dword [ebp - 0x4c], 0
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
call fcn.004212e4
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x633b82
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x229], 0
je 0x633b2f
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
jmp 0x633b3a
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x74]
test al, al
je 0x633b58
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov dl, byte [ebp - 0x2c]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
call fcn.007153e0
mov byte [ebp - 9], 1
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jbe 0x633b82
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x18]
mov dword [eax], edx
inc dword [ebp - 0x4c]
dec esi
jne 0x633b02
mov eax, dword [ebp - 0x30]
call fcn.004041f0
jmp 0x633d49
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
je 0x633bb6
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp byte [eax + 0xe78], 0
je 0x633bb6
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x14]
mov al, byte [eax]
sub al, 1
jb 0x633bce
je 0x633c07
dec al
je 0x633d2d
jmp 0x633d49
push ebp
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
mov eax, dword [ebp - 0x14]
call fcn.00630c90
pop ecx
test al, al
je 0x633d49
push ebp
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
push ebx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
call fcn.00631d50
pop ecx
mov byte [ebp - 9], 1
jmp 0x633d49
mov dl, 1
mov eax, dword [0x41e708]
call fcn.004041c0
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jne 0x633c4d
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x30]
push eax
push 1
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
mov eax, dword [ebp - 4]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 4]
call fcn.0070b244
jmp 0x633c78
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x30]
push eax
push 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 4]
call fcn.0070b244
mov eax, dword [ebp - 0x30]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x633d23
inc esi
mov dword [ebp - 0x4c], 0
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
call fcn.004212e4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xe78], 0
jne 0x633d19
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xe70], 0
jne 0x633d19
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 4]
je 0x633d19
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x74]
test al, al
je 0x633d19
push ebp
mov eax, dword [ebp - 0x18]
add eax, 0x20
push eax
lea eax, [ebp - 0x18]
push eax
push ebx
mov eax, dword [ebp - 0x18]
lea ecx, [eax + 0x1c]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
call fcn.00631d50
pop ecx
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x1ac], 0
jbe 0x633d15
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x18]
mov dword [eax], edx
mov byte [ebp - 9], 1
inc dword [ebp - 0x4c]
dec esi
jne 0x633c8f
mov eax, dword [ebp - 0x30]
call fcn.004041f0
jmp 0x633d49
push ebp
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
push ebx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
call fcn.00631d50
pop ecx
mov byte [ebp - 9], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x633d7b
lea eax, [ebp - 0x94]
mov edx, 8
call fcn.00405164
lea eax, [ebp - 0x58]
mov edx, 2
call fcn.00405164
ret