Function at 0x4afc19
Capabilities:
Check if file exists
Get common file path
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x575197
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
mov eax, 0x6c1c
call fcn.0054c740
push esi
push edi
mov dword [ebp - 0x6c0c], ecx
mov dword [ebp - 0x528], 0
mov dword [ebp - 0xb48], 0
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x5ba4], 1
cmp dword [0x67fa18], 0
je 0x4afc9a
push 0
push 0x3e8
push 0x1987
mov ecx, dword [ebp - 0x6c0c]
call fcn.004116a0
jmp 0x4b2bd9
push 0x1987
mov ecx, dword [ebp - 0x6c0c]
call fcn.004116d0
call fcn.004be560
mov dword [0x67aaa8], eax
call fcn.004bd34f
cmp dword [0x5ea054], 0
je 0x4afce9
push 0x605
mov ecx, dword [ebp - 0x6c0c]
call fcn.005654d4
mov ecx, eax
call fcn.00404920
test eax, eax
je 0x4afce9
mov dword [ebp - 0x6c10], 1
jmp 0x4afcf3
mov dword [ebp - 0x6c10], 0
mov eax, dword [ebp - 0x6c10]
mov dword [ebp - 0x528], eax
cmp dword [ebp - 0x528], 0
jne 0x4afd28
cmp dword [0x67fa14], 1
je 0x4afd23
cmp dword [0x67aa9c], 0
jne 0x4afd23
cmp dword [0x67fa20], 0
je 0x4afd28
jmp 0x4b2bd9
mov dword [0x67fa14], 1
mov dword [0x67aa78], 0
cmp dword [ebp - 0x528], 0
jne 0x4afd67
cmp dword [0x5ee044], 0
jne 0x4afd67
push 0
push 0x3ea
mov ecx, dword [ebp - 0x6c0c]
call fcn.005654d4
mov ecx, eax
call fcn.005657c0
push 0x3ed
mov ecx, dword [ebp - 0x6c0c]
call fcn.005654d4
mov dword [0x5eaa48], eax
cmp dword [ebp - 0x528], 0
je 0x4afd8e
cmp dword [0x673ea0], 0
jne 0x4afd98
mov dword [0x673ea0], 0xffffffff
mov ecx, dword [ebp - 0x6c0c]
push ecx
push 0x6785ac
call fcn.004ad773
add esp, 8
call fcn.004a5ec3
movsx edx, byte [0x67a524]
test edx, edx
jne 0x4afdec
call fcn.004a5ec3
movsx eax, byte [0x67a524]
test eax, eax
jne 0x4afdec
cmp dword [0x5edfcc], 0
jne 0x4afdec
push 0
push 0x67fc70
push 0x5c48f8
mov ecx, dword [ebp - 0x6c0c]
call fcn.00564245
cmp dword [ebp - 0x528], 0
jne 0x4afe1e
push 0x11
push 0
push 0x5e916c
call fcn.0054bf90
add esp, 0xc
mov byte [0x5e9124], 0
push 0x11
push 0
push 0x673f68
call fcn.0054bf90
add esp, 0xc
mov dword [0x673eb0], 0
push 0
mov ecx, dword [0x673eb0]
push ecx
call fcn.004bd49b
add esp, 8
cmp dword [ebp - 0x528], 0
jne 0x4afe4d
mov ecx, dword [ebp - 0x6c0c]
call fcn.0048dc30
cmp dword [0x67aaa8], 0
je 0x4b00a6
mov dword [ebp - 0x4f7c], 1
jmp 0x4afe75
mov edx, dword [ebp - 0x4f7c]
add edx, 1
mov dword [ebp - 0x4f7c], edx
mov eax, dword [0x673b98]
add eax, 1
cmp dword [ebp - 0x4f7c], eax
jge 0x4b00a1
mov ecx, dword [ebp - 0x4f7c]
xor edx, edx
mov dl, byte [ecx + 0x673f40]
test edx, edx
je 0x4afeb0
mov eax, dword [ebp - 0x4f7c]
xor ecx, ecx
mov cl, byte [eax + 0x673f40]
cmp ecx, 4
je 0x4afeb0
jmp 0x4afe66
mov edx, dword [ebp - 0x4f7c]
mov byte [edx + 0x673f68], 0
push 0
mov eax, dword [ebp - 0x4f7c]
imul eax, eax, 0x3c
mov ecx, dword [ebp - 0x6c0c]
lea ecx, [ecx + eax + 0x10e0]
call fcn.0056577e
cmp dword [0x67aa8c], 0
je 0x4aff56
cmp dword [0x5ea054], 0
jne 0x4aff56
mov edx, dword [ebp - 0x4f7c]
push edx
push 0x5c4914
call fcn.0047ee1b
add esp, 8
mov ecx, dword [ebp - 0x4f7c]
mov dword [ecx*4 + 0x5ee10c], eax
mov edx, dword [ebp - 0x4f7c]
push edx
push 0x5c491c
call fcn.0047ee1b
add esp, 8
mov ecx, dword [ebp - 0x4f7c]
mov dword [ecx*4 + 0x5ee0c8], eax
mov edx, dword [ebp - 0x4f7c]
cmp dword [edx*4 + 0x5ee10c], 0xffffffff
jne 0x4aff4a
mov dword [ebp - 0x5b9c], 0
jmp 0x4aff54
mov dword [ebp - 0x5b9c], 1
jmp 0x4affb2
lea eax, [ebp - 0x4f78]
push eax
lea ecx, [ebp - 0x524]
push ecx
mov edx, dword [ebp - 0x4f7c]
push edx
call fcn.005012bf
add esp, 0xc
mov eax, dword [ebp - 0x4f7c]
push eax
mov ecx, dword [ebp - 0x4f78]
push ecx
lea edx, [ebp - 0x524]
push edx
mov eax, dword [ebp - 0x4f7c]
lea ecx, [eax*4 + 0x5ee0c8]
push ecx
mov edx, dword [ebp - 0x4f7c]
lea eax, [edx*4 + 0x5ee10c]
push eax
call fcn.0053ed10
add esp, 0x14
mov dword [ebp - 0x5b9c], eax
cmp dword [ebp - 0x5b9c], 0
jne 0x4affda
mov ecx, dword [ebp - 0x4f7c]
mov byte [ecx + 0x5e916c], 0
mov edx, dword [ebp - 0x4f7c]
mov byte [edx + 0x673f68], 0
jmp 0x4b009c
mov eax, dword [ebp - 0x4f7c]
mov byte [eax + 0x673f68], 1
mov dword [ebp - 0x218], 1
mov ecx, dword [ebp - 0x4f7c]
cmp dword [ecx*4 + 0x5ee10c], 0xffffffff
je 0x4b0015
mov edx, dword [ebp - 0x4f7c]
mov eax, dword [edx*4 + 0x5ee10c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x4f7c]
cmp dword [ecx*4 + 0x5ee0c8], 0xffffffff
je 0x4b0039
mov edx, dword [ebp - 0x4f7c]
mov eax, dword [edx*4 + 0x5ee0c8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x6784a8
push 0
push 0x5c4924
push 0x5c493c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x4b009c
mov ecx, dword [ebp - 0x4f7c]
cmp dword [ecx*4 + 0x5ee10c], 0xffffffff
je 0x4b009c
mov edx, dword [ebp - 0x4f7c]
cmp dword [edx*4 + 0x5ee0c8], 0xffffffff
je 0x4b009c
push 0
mov eax, dword [ebp - 0x4f7c]
mov ecx, dword [eax*4 + 0x5ee0c8]
push ecx
mov edx, dword [ebp - 0x4f7c]
mov eax, dword [edx*4 + 0x5ee10c]
push eax
push 1
call fcn.0051d0a4
add esp, 0x10
jmp 0x4afe66
jmp 0x4b0916
mov dword [ebp - 0x5c0c], 0
mov ecx, 5
mov esi, 0x5c4948
lea edi, [ebp - 0x5be8]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor ecx, ecx
mov dword [ebp - 0x5bd1], ecx
mov dword [ebp - 0x5bcd], ecx
mov byte [ebp - 0x5bc9], cl
mov ecx, 5
mov esi, 0x5c4960
lea edi, [ebp - 0x5bc8]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor edx, edx
mov dword [ebp - 0x5bb2], edx
mov dword [ebp - 0x5bae], edx
mov word [ebp - 0x5baa], dx
mov ecx, 6
mov esi, 0x5c4978
lea edi, [ebp - 0x5c08]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor eax, eax
mov dword [ebp - 0x5bef], eax
mov word [ebp - 0x5beb], ax
mov byte [ebp - 0x5be9], al
mov dword [ebp - 0x4f7c], 1
jmp 0x4b0145
mov ecx, dword [ebp - 0x4f7c]
add ecx, 1
mov dword [ebp - 0x4f7c], ecx
mov edx, dword [0x673b98]
add edx, 1
cmp dword [ebp - 0x4f7c], edx
jge 0x4b01ce
mov eax, dword [ebp - 0x4f7c]
movsx ecx, byte [eax + 0x67a644]
cmp ecx, 0xff
je 0x4b0192
mov edx, dword [ebp - 0x4f7c]
xor eax, eax
mov al, byte [edx + 0x673f40]
test eax, eax
je 0x4b0192
mov ecx, dword [ebp - 0x4f7c]
xor edx, edx
mov dl, byte [ecx + 0x673f40]
cmp edx, 4
je 0x4b0192
jmp 0x4b0136
push 0
mov eax, dword [ebp - 0x4f7c]
imul eax, eax, 0x3c
mov ecx, dword [ebp - 0x6c0c]
lea ecx, [ecx + eax + 0x10e0]
call fcn.0056577e
mov edx, dword [ebp - 0x4f7c]
mov byte [edx + 0x673f68], 0
mov eax, dword [ebp - 0x4f7c]
mov byte [eax + 0x67a644], 0
jmp 0x4b0136
push 0x104
push 0
lea ecx, [ebp - 0x4f74]
push ecx
call fcn.0054bf90
add esp, 0xc
push 0x104
lea edx, [ebp - 0x4f74]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov dword [ebp - 0x4f7c], 0
jmp 0x4b0211
mov eax, dword [ebp - 0x4f7c]
add eax, 1
mov dword [ebp - 0x4f7c], eax
cmp dword [ebp - 0x4f7c], 0x1a
jge 0x4b04d6
mov ecx, dword [ebp - 0x4f7c]
add ecx, 0x41
mov byte [ebp - 0x5e10], cl
movsx edx, byte [ebp - 0x5e10]
movsx eax, byte [ebp - 0x4f74]
cmp edx, eax
jne 0x4b0241
jmp 0x4b0202
cmp dword [ebp - 0x528], 0
je 0x4b02d0
mov dword [ebp - 0x5e18], 1
jmp 0x4b0269
mov ecx, dword [ebp - 0x5e18]
add ecx, 1
mov dword [ebp - 0x5e18], ecx
mov edx, dword [0x673b98]
add edx, 1
cmp dword [ebp - 0x5e18], edx
jge 0x4b0296
mov eax, dword [ebp - 0x5e18]
movsx ecx, byte [eax + 0x67a644]
movsx edx, byte [ebp - 0x5e10]
cmp ecx, edx
jne 0x4b0294
jmp 0x4b0296
jmp 0x4b025a
mov eax, dword [0x673b98]
add eax, 1
cmp dword [ebp - 0x5e18], eax
jge 0x4b02d0
mov ecx, dword [ebp - 0x5e18]
xor edx, edx
mov dl, byte [ecx + 0x673f40]
test edx, edx
je 0x4b02d0
mov eax, dword [ebp - 0x5e18]
xor ecx, ecx
mov cl, byte [eax + 0x673f40]
cmp ecx, 4
je 0x4b02d0
jmp 0x4b0202
push 0x200
push 0
lea edx, [ebp - 0x5e0c]
push edx
call fcn.0054bf90
add esp, 0xc
lea eax, [ebp - 0xb44]
push eax
lea ecx, [ebp - 0x5e0c]
push ecx
mov dl, byte [ebp - 0x5e10]
push edx
call fcn.004be7ee
add esp, 0xc
mov dword [ebp - 0x5e14], eax
mov eax, dword [ebp - 0x5df1]
and eax, 0xff
cmp eax, 0x33
jne 0x4b035a
mov ecx, dword [ebp - 0x5df0]
and ecx, 0xff
cmp ecx, 0x32
jne 0x4b035a
mov edx, dword [ebp - 0x5def]
and edx, 0xff
cmp edx, 0x30
jne 0x4b035a
mov eax, dword [ebp - 0x5dee]
and eax, 0xff
cmp eax, 0x24
jne 0x4b035a
mov dword [ebp - 0x5c0c], 1
jmp 0x4b04d6
mov byte [ebp - 0x5df4], 0
mov byte [ebp - 0x5bd3], 0
mov byte [ebp - 0x5bb3], 0
mov byte [ebp - 0x5bf3], 0
mov ecx, dword [ebp - 0x5e0c]
and ecx, 0xff
cmp ecx, 0x53
jne 0x4b03b7
mov edx, dword [ebp - 0x5e0b]
and edx, 0xff
cmp edx, 0x4d
jne 0x4b03b7
mov eax, dword [ebp - 0x5e0a]
and eax, 0xff
cmp eax, 0x49
jne 0x4b03b7
mov dword [ebp - 0x5c0c], 1
jmp 0x4b04d6
mov ecx, dword [ebp - 0x5e0c]
and ecx, 0xff
cmp ecx, 0x73
jne 0x4b03f8
mov edx, dword [ebp - 0x5e0b]
and edx, 0xff
cmp edx, 0x6d
jne 0x4b03f8
mov eax, dword [ebp - 0x5e0a]
and eax, 0xff
cmp eax, 0x69
jne 0x4b03f8
mov dword [ebp - 0x5c0c], 1
jmp 0x4b04d6
mov ecx, dword [ebp - 0x5e0c]
and ecx, 0xff
cmp ecx, 0x55
jne 0x4b0439
mov edx, dword [ebp - 0x5e0b]
and edx, 0xff
cmp edx, 0x53
jne 0x4b0439
mov eax, dword [ebp - 0x5e0a]
and eax, 0xff
cmp eax, 0x42
jne 0x4b0439
mov dword [ebp - 0x5c0c], 1
jmp 0x4b04d6
mov ecx, dword [ebp - 0x5e0c]
and ecx, 0xff
cmp ecx, 0x33
jne 0x4b0477
mov edx, dword [ebp - 0x5e0b]
and edx, 0xff
cmp edx, 0x33
jne 0x4b0477
mov eax, dword [ebp - 0x5e0a]
and eax, 0xff
cmp eax, 0x30
jne 0x4b0477
mov dword [ebp - 0x5c0c], 1
jmp 0x4b04d6
lea ecx, [ebp - 0x5e09]
push ecx
lea edx, [ebp - 0x5be8]
push edx
call fcn.0054cf00
add esp, 8
test eax, eax
je 0x4b04c5
lea eax, [ebp - 0x5e09]
push eax
lea ecx, [ebp - 0x5bc8]
push ecx
call fcn.0054cf00
add esp, 8
test eax, eax
je 0x4b04c5
lea edx, [ebp - 0x5e09]
push edx
lea eax, [ebp - 0x5c08]
push eax
call fcn.0054cf00
add esp, 8
test eax, eax
jne 0x4b04d1
mov dword [ebp - 0x5c0c], 1
jmp 0x4b04d6
jmp 0x4b0202
cmp dword [ebp - 0x5c0c], 0
je 0x4b05e3
push 0x6784a8
push 0
push 0x5c4994
push 0x5c49a8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x4b0594
push 0
call fcn.00535666
add esp, 4
push 0x67fc74
mov cl, byte [ebp - 0x5e10]
push ecx
call fcn.0053511d
add esp, 8
mov dword [ebp - 0x424], eax
cmp dword [ebp - 0x424], 0x63
jne 0x4b0592
mov ecx, 0x5ee158
call fcn.005251ac
push 0x67fc78
mov dl, byte [ebp - 0x5e10]
push edx
call fcn.0053511d
add esp, 8
mov dword [ebp - 0x424], eax
cmp dword [ebp - 0x424], 0x63
jne 0x4b0592
lea eax, [ebp - 0x5e98]
push eax
mov cl, byte [ebp - 0x5e10]
push ecx
call fcn.004be602
add esp, 8
test eax, eax
je 0x4b0592
lea edx, [ebp - 0x5e98]
push edx
mov al, byte [ebp - 0x5e10]
push eax
call fcn.005349f4
add esp, 8
mov dword [ebp - 0x424], eax
jmp 0x4b059e
mov dword [ebp - 0x424], 1
cmp dword [ebp - 0x424], 0x63
je 0x4b05d9
mov ecx, dword [0x673b98]
add ecx, 1
cmp dword [ebp - 0x424], ecx
jge 0x4b05d9
mov edx, dword [ebp - 0x424]
mov al, byte [ebp - 0x5e10]
mov byte [edx + 0x67a644], al
mov ecx, dword [ebp - 0x424]
mov byte [ecx + 0x673f68], 1
jmp 0x4b05e3
mov dword [ebp - 0x5c0c], 0
cmp dword [ebp - 0x5c0c], 1
je 0x4b05f9
cmp dword [ebp - 0x528], 0
je 0x4b0916
mov dword [ebp - 0x4f7c], 2
jmp 0x4b0614
mov edx, dword [ebp - 0x4f7c]
add edx, 1
mov dword [ebp - 0x4f7c], edx
mov eax, dword [0x673b98]
add eax, 1
cmp dword [ebp - 0x4f7c], eax
jge 0x4b0916
mov dword [ebp - 0x5c0c], 0
push 0x200
push 0
lea ecx, [ebp - 0x5e0c]
push ecx
call fcn.0054bf90
add esp, 0xc
lea edx, [ebp - 0xb44]
push edx
lea eax, [ebp - 0x5e0c]
push eax
movsx ecx, byte [ebp - 0x5e10]
mov edx, dword [ebp - 0x4f7c]
lea eax, [ecx + edx - 1]
push eax
call fcn.004be7ee
add esp, 0xc
mov dword [ebp - 0x5e14], eax
mov ecx, dword [ebp - 0x5df1]
and ecx, 0xff
cmp ecx, 0x33
jne 0x4b06c3
mov edx, dword [ebp - 0x5df0]
and edx, 0xff
cmp edx, 0x32
jne 0x4b06c3
mov eax, dword [ebp - 0x5def]
and eax, 0xff
cmp eax, 0x30
jne 0x4b06c3
mov ecx, dword [ebp - 0x5dee]
and ecx, 0xff
cmp ecx, 0x24
jne 0x4b06c3
mov dword [ebp - 0x5c0c], 1
mov byte [ebp - 0x5df4], 0
mov byte [ebp - 0x5bd3], 0
mov byte [ebp - 0x5bb3], 0
mov byte [ebp - 0x5bf3], 0
mov edx, dword [ebp - 0x5e0c]
and edx, 0xff
cmp edx, 0x53
jne 0x4b071b
mov eax, dword [ebp - 0x5e0b]
and eax, 0xff
cmp eax, 0x4d
jne 0x4b071b
mov ecx, dword [ebp - 0x5e0a]
and ecx, 0xff
cmp ecx, 0x49
jne 0x4b071b
mov dword [ebp - 0x5c0c], 1
mov edx, dword [ebp - 0x5e0c]
and edx, 0xff
cmp edx, 0x73
jne 0x4b0757
mov eax, dword [ebp - 0x5e0b]
and eax, 0xff
cmp eax, 0x6d
jne 0x4b0757
mov ecx, dword [ebp - 0x5e0a]
and ecx, 0xff
cmp ecx, 0x69
jne 0x4b0757
mov dword [ebp - 0x5c0c], 1
mov edx, dword [ebp - 0x5e0c]
and edx, 0xff
cmp edx, 0x55
jne 0x4b0793
mov eax, dword [ebp - 0x5e0b]
and eax, 0xff
cmp eax, 0x53
jne 0x4b0793
mov ecx, dword [ebp - 0x5e0a]
and ecx, 0xff
cmp ecx, 0x42
jne 0x4b0793
mov dword [ebp - 0x5c0c], 1
lea edx, [ebp - 0x5e09]
push edx
lea eax, [ebp - 0x5be8]
push eax
call fcn.0054cf00
add esp, 8
test eax, eax
je 0x4b07e1
lea ecx, [ebp - 0x5e09]
push ecx
lea edx, [ebp - 0x5bc8]
push edx
call fcn.0054cf00
add esp, 8
test eax, eax
je 0x4b07e1
lea eax, [ebp - 0x5e09]
push eax
lea ecx, [ebp - 0x5c08]
push ecx
call fcn.0054cf00
add esp, 8
test eax, eax
jne 0x4b07eb
mov dword [ebp - 0x5c0c], 1
cmp dword [ebp - 0x5c0c], 0
je 0x4b0911
push 0x6784a8
push 0
push 0x5c49b4
push 0x5c49c8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x4b08b5
push 0x67fc7c
movsx edx, byte [ebp - 0x5e10]
mov eax, dword [ebp - 0x4f7c]
lea ecx, [edx + eax - 1]
push ecx
call fcn.0053511d
add esp, 8
mov dword [ebp - 0x424], eax
cmp dword [ebp - 0x424], 0x63
jne 0x4b08b3
mov ecx, 0x5ee158
call fcn.005251ac
push 0x67fc80
mov dl, byte [ebp - 0x5e10]
push edx
call fcn.0053511d
add esp, 8
mov dword [ebp - 0x424], eax
cmp dword [ebp - 0x424], 0x63
jne 0x4b08b3
lea eax, [ebp - 0x5f18]
push eax
movsx ecx, byte [ebp - 0x5e10]
mov edx, dword [ebp - 0x4f7c]
lea eax, [ecx + edx - 1]
push eax
call fcn.004be602
add esp, 8
test eax, eax
je 0x4b08b3
lea ecx, [ebp - 0x5f18]
push ecx
mov dl, byte [ebp - 0x5e10]
push edx
call fcn.005349f4
add esp, 8
mov dword [ebp - 0x424], eax
jmp 0x4b08c1
mov eax, dword [ebp - 0x4f7c]
mov dword [ebp - 0x424], eax
cmp dword [ebp - 0x424], 0x63
je 0x4b0907
mov ecx, dword [0x673b98]
add ecx, 1
cmp dword [ebp - 0x424], ecx
jge 0x4b0907
movsx edx, byte [ebp - 0x5e10]
mov eax, dword [ebp - 0x4f7c]
lea ecx, [edx + eax - 1]
mov edx, dword [ebp - 0x424]
mov byte [edx + 0x67a644], cl
mov eax, dword [ebp - 0x424]
mov byte [eax + 0x673f68], 1
jmp 0x4b0911
mov dword [ebp - 0x5c0c], 0
jmp 0x4b0605
mov dword [ebp - 0x4b6c], 0xffffffff
mov dword [ebp - 0x538], 0xffffffff
mov byte [ebp - 0x4b54], 0
mov byte [ebp - 0x5ba0], 0
mov dword [ebp - 0x534], 0
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x4bf0], 0
mov dword [ebp - 0x4b58], 0
mov byte [ebp - 0x41c], 0
mov dword [ebp - 0x93c], 0
mov dword [ebp - 0x530], 0x94
mov dword [ebp - 0x52c], 0x14
mov dword [ebp - 0xb50], 0x20
mov dword [ebp - 0x558c], 0
mov dword [ebp - 0x5b98], 0xf8
mov dword [ebp - 0x5590], 0x14
push 0x67fc84
mov ecx, dword [0x5eaa48]
call fcn.0056567d
push 0x4000
push 0
lea ecx, [ebp - 0x4b50]
push ecx
call fcn.0054bf90
add esp, 0xc
mov dword [0x673eb0], 0
mov dword [ebp - 0x4f7c], 1
jmp 0x4b09f8
mov edx, dword [ebp - 0x4f7c]
add edx, 1
mov dword [ebp - 0x4f7c], edx
mov eax, dword [0x673b98]
add eax, 1
cmp dword [ebp - 0x4f7c], eax
jge 0x4b2b9f
mov ecx, dword [ebp - 0x4f7c]
push ecx
push 0x5c49d4
lea edx, [ebp - 0x4bec]
push edx
call fcn.0054c6e3
add esp, 0xc
mov eax, dword [ebp - 0x4f7c]
xor ecx, ecx
mov cl, byte [eax + 0x673f68]
test ecx, ecx
je 0x4b0a60
mov edx, dword [ebp - 0x4f7c]
xor eax, eax
mov al, byte [edx + 0x673f40]
test eax, eax
je 0x4b0a60
mov ecx, dword [ebp - 0x4f7c]
xor edx, edx
mov dl, byte [ecx + 0x673f40]
cmp edx, 3
jge 0x4b0a60
jmp 0x4b09e9
mov dword [ebp - 0x4b58], 0
mov eax, dword [ebp - 0x4f7c]
xor ecx, ecx
mov cl, byte [eax + 0x673f68]
test ecx, ecx
jne 0x4b0c15
cmp dword [0x5ea000], 0
jle 0x4b0ad7
mov edx, dword [0x5ea000]
push edx
mov eax, dword [ebp - 0x4f7c]
sub eax, 1
push eax
push 6
mov ecx, dword [0x5eaa50]
call fcn.00417fc6
push 0x67fc88
mov ecx, dword [0x5ea000]
push ecx
mov edx, dword [ebp - 0x4f7c]
sub edx, 1
push edx
mov ecx, dword [0x5eaa50]
call fcn.0041805c
mov eax, dword [ebp - 0x4f7c]
push eax
call fcn.0048535c
add esp, 4
mov ecx, dword [ebp - 0x4f7c]
mov byte [ecx + 0x5e916c], 0
mov edx, dword [ebp - 0x4f7c]
xor eax, eax
mov al, byte [edx + 0x673f40]
cmp eax, 3
jne 0x4b0b04
mov ecx, dword [ebp - 0x4f7c]
mov byte [ecx + 0x673f40], 4
push 0
push 0
mov edx, dword [ebp - 0x4f7c]
push edx
call fcn.004853cf
add esp, 0xc
mov eax, dword [ebp - 0x4f7c]
xor ecx, ecx
mov cl, byte [eax + 0x673f68]
push ecx
mov edx, dword [ebp - 0x4f7c]
push edx
call fcn.00485774
add esp, 8
mov eax, dword [ebp - 0x4f7c]
xor ecx, ecx
mov cl, byte [eax + 0x673f68]
test ecx, ecx
je 0x4b0b74
mov ecx, dword [ebp - 0x4f7c]
sub ecx, 1
mov edx, 1
shl edx, cl
mov eax, dword [0x673eb0]
or eax, edx
mov dword [0x673eb0], eax
push 0
mov ecx, dword [0x673eb0]
push ecx
call fcn.004bd49b
add esp, 8
push 1
mov ecx, dword [ebp - 0x6c0c]
call fcn.00411620
push 0x67fc8c
mov edx, dword [ebp - 0x4f7c]
mov ecx, dword [edx*4 + 0x5eaa58]
call fcn.0056567d
mov eax, dword [ebp - 0x4f7c]
xor ecx, ecx
mov cl, byte [eax + 0x673f54]
test ecx, ecx
je 0x4b0c10
push 2
lea edx, [ebp - 0x6bfc]
push edx
call fcn.00535af5
add esp, 8
mov dword [ebp - 0x6c14], eax
mov eax, dword [ebp - 0x6c14]
mov ecx, dword [eax]
push ecx
push 0x5c49f8
lea edx, [ebp - 0x615c]
push edx
call fcn.0054c6e3
add esp, 0xc
lea ecx, [ebp - 0x6bfc]
call fcn.0056206c
push 0
push 7
lea eax, [ebp - 0x615c]
push eax
mov ecx, dword [ebp - 0x4f7c]
push ecx
call fcn.0051879b
add esp, 0x10
mov edx, dword [ebp - 0x4f7c]
mov byte [edx + 0x673f54], 0
jmp 0x4b09e9
cmp dword [0x67aaa8], 0
je 0x4b0cd9
cmp dword [0x67aa8c], 0
je 0x4b0c89
cmp dword [0x5ea054], 0
jne 0x4b0c89
mov eax, dword [ebp - 0x4f7c]
push eax
push 0x5c49fc
call fcn.0047ee1b
add esp, 8
mov dword [ebp - 0x4b6c], eax
mov ecx, dword [ebp - 0x4f7c]
push ecx
push 0x5c4a04
call fcn.0047ee1b
add esp, 8
mov dword [ebp - 0x538], eax
cmp dword [ebp - 0x4b6c], 0xffffffff
jne 0x4b0c7d
mov dword [ebp - 0x5b9c], 0
jmp 0x4b0c87
mov dword [ebp - 0x5b9c], 1
jmp 0x4b0cd7
lea edx, [ebp - 0x4f78]
push edx
lea eax, [ebp - 0x524]
push eax
mov ecx, dword [ebp - 0x4f7c]
push ecx
call fcn.005012bf
add esp, 0xc
mov edx, dword [ebp - 0x4f7c]
push edx
mov eax, dword [ebp - 0x4f78]
push eax
lea ecx, [ebp - 0x524]
push ecx
lea edx, [ebp - 0x538]
push edx
lea eax, [ebp - 0x4b6c]
push eax
call fcn.0053ed10
add esp, 0x14
mov dword [ebp - 0x5b9c], eax
jmp 0x4b0cfb
lea ecx, [ebp - 0x5588]
push ecx
mov edx, dword [ebp - 0x4f7c]
mov al, byte [edx + 0x67a644]
push eax
call fcn.004be965
add esp, 8
mov dword [ebp - 0x5b9c], eax
cmp dword [ebp - 0x5b9c], 0
jne 0x4b0e25
mov ecx, dword [ebp - 0x4f7c]
mov byte [ecx + 0x673f68], 0
mov edx, dword [ebp - 0x4f7c]
xor eax, eax
mov al, byte [edx + 0x673f40]
cmp eax, 3
jne 0x4b0d35
mov ecx, dword [ebp - 0x4f7c]
mov byte [ecx + 0x673f40], 4
cmp dword [0x5ea000], 0
jle 0x4b0d8c
mov edx, dword [0x5ea000]
push edx
mov eax, dword [ebp - 0x4f7c]
sub eax, 1
push eax
push 6
mov ecx, dword [0x5eaa50]
call fcn.00417fc6
push 0x67fc90
mov ecx, dword [0x5ea000]
push ecx
mov edx, dword [ebp - 0x4f7c]
sub edx, 1
push edx
mov ecx, dword [0x5eaa50]
call fcn.0041805c
mov eax, dword [ebp - 0x4f7c]
push eax
call fcn.0048535c
add esp, 4
mov ecx, dword [ebp - 0x4f7c]
mov byte [ecx + 0x5e916c], 0
push 0
push 0
mov edx, dword [ebp - 0x4f7c]
push edx
call fcn.004853cf
add esp, 0xc
mov eax, dword [ebp - 0x4f7c]
xor ecx, ecx
mov cl, byte [eax + 0x673f68]
push ecx
mov edx, dword [ebp - 0x4f7c]
push edx
call fcn.00485774
add esp, 8
mov eax, dword [ebp - 0x4f7c]
xor ecx, ecx
mov cl, byte [eax + 0x673f68]
test ecx, ecx
je 0x4b0e09
mov ecx, dword [ebp - 0x4f7c]
sub ecx, 1
mov edx, 1
shl edx, cl
mov eax, dword [0x673eb0]
or eax, edx
mov dword [0x673eb0], eax
push 0
mov ecx, dword [0x673eb0]
push ecx
call fcn.004bd49b
add esp, 8
push 0x67fc94
mov edx, dword [ebp - 0x4f7c]
mov ecx, dword [edx*4 + 0x5eaa58]
call fcn.0056567d
jmp 0x4b09e9
mov dword [ebp - 0x6168], 0
mov dword [ebp - 0x6160], 0
cmp dword [0x673ea0], 0xffffffff
jne 0x4b0e90
push 0x20
push 0
push 0x678384
call fcn.0054bf90
add esp, 0xc
push 0x678384
mov eax, dword [ebp - 0x5588]
push eax
mov cl, byte [ebp - 0x5ba0]
push ecx
mov dl, byte [ebp - 0x4b54]
push edx
mov eax, dword [ebp - 0x534]
push eax
mov ecx, dword [ebp - 0x538]
push ecx
mov edx, dword [ebp - 0x4b6c]
push edx
mov eax, dword [0x67aaa8]
push eax
call fcn.004c0289
add esp, 0x20
push 0
push 0x200
lea ecx, [ebp - 0x5b90]
push ecx
mov edx, dword [ebp - 0x5588]
push edx
mov eax, dword [ebp - 0x538]
push eax
mov ecx, dword [ebp - 0x4b6c]
push ecx
mov edx, dword [0x67aaa8]
push edx
call fcn.0051a525
add esp, 0x1c
mov dword [ebp - 0x5b9c], eax
cmp dword [ebp - 0x5b9c], 0
je 0x4b0ef1
mov eax, dword [ebp - 0x4f7c]
xor ecx, ecx
mov cl, byte [eax + 0x673f40]
cmp ecx, 3
je 0x4b0ef1
cmp dword [ebp - 0x6160], 0
je 0x4b0f82
cmp dword [0x67aaa8], 0
je 0x4b0f3c
cmp dword [ebp - 0x4b6c], 0
je 0x4b0f1a
mov edx, dword [ebp - 0x4b6c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x4b6c], 0xffffffff
cmp dword [ebp - 0x538], 0
je 0x4b0f3a
mov eax, dword [ebp - 0x538]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x538], 0xffffffff
jmp 0x4b0f5e
cmp dword [ebp - 0x5588], 0
je 0x4b0f5e
mov ecx, dword [ebp - 0x5588]
push ecx
call fcn.004beacb
add esp, 4
mov dword [ebp - 0x5588], 0xffffffff
cmp dword [ebp - 0x5b9c], 0
je 0x4b0f70
cmp dword [ebp - 0x6160], 0
je 0x4b0f7d
mov edx, dword [ebp - 0x4f7c]
mov byte [edx + 0x673f68], 0
jmp 0x4b09e9
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x5b90]
push eax
call fcn.004bdb9c
add esp, 4
test eax, eax
je 0x4b101f
mov ecx, dword [ebp - 0x4f7c]
mov byte [ecx + 0x673f68], 0
cmp dword [0x67aaa8], 0
je 0x4b0ff8
cmp dword [ebp - 0x4b6c], 0
je 0x4b0fd6
mov edx, dword [ebp - 0x4b6c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x4b6c], 0xffffffff
cmp dword [ebp - 0x538], 0
je 0x4b0ff6
mov eax, dword [ebp - 0x538]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x538], 0xffffffff
jmp 0x4b101a
cmp dword [ebp - 0x5588], 0
je 0x4b101a
mov ecx, dword [ebp - 0x5588]
push ecx
call fcn.004beacb
add esp, 4
mov dword [ebp - 0x5588], 0xffffffff
jmp 0x4b09e9
cmp dword [0x673ea0], 0xffffffff
jne 0x4b106f
mov edx, dword [ebp - 0x4f7c]
mov byte [edx + 0x673f68], 0
mov dword [0x67fa14], 0
cmp dword [ebp - 0x528], 0
jne 0x4b106a
cmp dword [0x5ee044], 0
jne 0x4b106a
push 1
push 0x3ea
mov ecx, dword [ebp - 0x6c0c]
call fcn.005654d4
mov ecx, eax
call fcn.005657c0
jmp 0x4b09e9
mov eax, dword [ebp - 0x4f7c]
xor ecx, ecx
mov cl, byte [eax + 0x673f54]
test ecx, ecx
jne 0x4b10f6
mov edx, dword [ebp - 0x4f7c]
push edx
call fcn.0048ef7d
add esp, 4
push 2
lea eax, [ebp - 0x6c00]
push eax
call fcn.00535af5
add esp, 8
mov dword [ebp - 0x6c18], eax
mov ecx, dword [ebp - 0x6c18]
mov edx, dword [ecx]
push edx
push 0x5c4a0c
lea eax, [ebp - 0x61a8]
push eax
call fcn.0054c6e3
add esp, 0xc
lea ecx, [ebp - 0x6c00]
call fcn.0056206c
push 0
push 0
lea ecx, [ebp - 0x61a8]
push ecx
mov edx, dword [ebp - 0x4f7c]
push edx
call fcn.0051879b
add esp, 0x10
mov eax, dword [ebp - 0x4f7c]
mov byte [eax + 0x673f54], 1
cmp dword [0x67aa9c], 0
je 0x4b110c
cmp dword [ebp - 0x528], 0
je 0x4b11c6
mov ecx, dword [ebp - 0x4f7c]
xor edx, edx
mov dl, byte [ecx + 0x673f68]
test edx, edx
je 0x4b1170
cmp dword [0x5ea000], 0
jle 0x4b116e
cmp dword [ebp - 0x528], 0
jne 0x4b116e
mov eax, dword [0x5ea000]
push eax
mov ecx, dword [ebp - 0x4f7c]
sub ecx, 1
push ecx
push 7
mov ecx, dword [0x5eaa50]
call fcn.00417fc6
push 0x5c4a14
mov edx, dword [0x5ea000]
push edx
mov eax, dword [ebp - 0x4f7c]
sub eax, 1
push eax
mov ecx, dword [0x5eaa50]
call fcn.0041805c
jmp 0x4b11c6
cmp dword [0x5ea000], 0
jle 0x4b11c6
mov ecx, dword [0x5ea000]
push ecx
mov edx, dword [ebp - 0x4f7c]
sub edx, 1
push edx
push 6
mov ecx, dword [0x5eaa50]
call fcn.00417fc6
push 0x67fc98
mov eax, dword [0x5ea000]
push eax
mov ecx, dword [ebp - 0x4f7c]
sub ecx, 1
push ecx
mov ecx, dword [0x5eaa50]
call fcn.0041805c
mov edx, dword [ebp - 0x4f7c]
push edx
call fcn.0048535c
add esp, 4
cmp dword [0x5ea028], 0
jne 0x4b1265
cmp dword [ebp - 0x528], 0
jne 0x4b11ef
push 0
push 0
mov eax, dword [ebp - 0x4f7c]
push eax
call fcn.004853cf
add esp, 0xc
mov ecx, dword [ebp - 0x4f7c]
xor edx, edx
mov dl, byte [ecx + 0x673f68]
push edx
mov eax, dword [ebp - 0x4f7c]
push eax
call fcn.00485774
add esp, 8
mov ecx, dword [ebp - 0x4f7c]
xor edx, edx
mov dl, byte [ecx + 0x673f68]
test edx, edx
je 0x4b124e
mov ecx, dword [ebp - 0x4f7c]
sub ecx, 1
mov eax, 1
shl eax, cl
mov ecx, dword [0x673eb0]
or ecx, eax
mov dword [0x673eb0], ecx
push 0
mov edx, dword [0x673eb0]
push edx
call fcn.004bd49b
add esp, 8
push 0x67fc9c
mov eax, dword [ebp - 0x4f7c]
mov ecx, dword [eax*4 + 0x5eaa58]
call fcn.0056567d
push 0x80
push 0
lea ecx, [ebp - 0x4bec]
push ecx
call fcn.0054bf90
add esp, 0xc
mov dword [ebp - 0x6164], 0
jmp 0x4b1296
mov edx, dword [ebp - 0x6164]
add edx, 1
mov dword [ebp - 0x6164], edx
cmp dword [ebp - 0x6164], 0x11
jge 0x4b12de
mov eax, dword [ebp - 0x6164]
imul eax, eax, 0xc
mov ecx, dword [0x673ea0]
cmp ecx, dword [eax + 0x5cb0e0]
jne 0x4b12dc
mov edx, dword [ebp - 0x6164]
imul edx, edx, 0xc
mov eax, dword [edx + 0x5cb0d8]
push eax
push 0x5c4a1c
lea ecx, [ebp - 0x4bec]
push ecx
call fcn.0054c6e3
add esp, 0xc
jmp 0x4b12de
jmp 0x4b1287
lea edx, [ebp - 0x4bec]
push edx
mov ecx, dword [0x5eaa48]
call fcn.0056567d
mov eax, dword [ebp - 0x4f7c]
xor ecx, ecx
mov cl, byte [eax + 0x673f40]
cmp ecx, 4
jne 0x4b1310
mov edx, dword [ebp - 0x4f7c]
mov byte [edx + 0x673f40], 0
mov eax, 1
test eax, eax
je 0x4b2214
mov dword [ebp - 0x420], 0x20
cmp dword [0x5ea0a0], 0
je 0x4b138f
mov dword [ebp - 0x61c0], 0
jmp 0x4b134b
mov ecx, dword [ebp - 0x61c0]
add ecx, 1
mov dword [ebp - 0x61c0], ecx
cmp dword [ebp - 0x61c0], 1
jg 0x4b138d
push 0
push 0x200
lea edx, [ebp - 0x5b90]
push edx
mov eax, dword [ebp - 0x5588]
push eax
mov ecx, dword [ebp - 0x538]
push ecx
mov edx, dword [ebp - 0x4b6c]
push edx
mov eax, dword [0x67aaa8]
push eax
call fcn.0051a525
add esp, 0x1c
mov dword [ebp - 0x5b9c], eax
jmp 0x4b133c
jmp 0x4b13c7
push 0
push 0x200
lea ecx, [ebp - 0x5b90]
push ecx
mov edx, dword [ebp - 0x5588]
push edx
mov eax, dword [ebp - 0x538]
push eax
mov ecx, dword [ebp - 0x4b6c]
push ecx
mov edx, dword [0x67aaa8]
push edx
call fcn.0051a525
add esp, 0x1c
mov dword [ebp - 0x5b9c], eax
lea eax, [ebp - 0x5b90]
push eax
call fcn.004bdb9c
add esp, 4
test eax, eax
je 0x4b1490
mov ecx, dword [ebp - 0x4f7c]
mov byte [ecx + 0x673f68], 0
cmp dword [0x5ea000], 0
jle 0x4b141e
cmp dword [ebp - 0x528], 0
jne 0x4b141e
push 0x67fca0
mov edx, dword [0x5ea000]
push edx
mov eax, dword [ebp - 0x4f7c]
sub eax, 1
push eax
mov ecx, dword [0x5eaa50]
call fcn.0041805c
cmp dword [0x67aaa8], 0
je 0x4b1469
cmp dword [ebp - 0x4b6c], 0
je 0x4b1447
mov ecx, dword [ebp - 0x4b6c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x4b6c], 0xffffffff
cmp dword [ebp - 0x538], 0
je 0x4b1467
mov edx, dword [ebp - 0x538]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x538], 0xffffffff
jmp 0x4b148b
cmp dword [ebp - 0x5588], 0
je 0x4b148b
mov eax, dword [ebp - 0x5588]
push eax
call fcn.004beacb
add esp, 4
mov dword [ebp - 0x5588], 0xffffffff
jmp 0x4b09e9
push 0x200
lea ecx, [ebp - 0x5b90]
push ecx
lea edx, [ebp - 0xb3c]
push edx
call fcn.0054c7e0
add esp, 0xc
mov eax, dword [ebp - 0x5b90]
and eax, 0xff
mov dword [0x5ea0b8], eax
cmp dword [0x673ea0], 8
jl 0x4b1555
cmp dword [0x673ea0], 0x16
jg 0x4b1555
cmp dword [0x673ea0], 8
jl 0x4b1507
cmp dword [0x673ea0], 0xd
jg 0x4b1507
cmp dword [0x67b528], 0
jne 0x4b1505
push 1
push 0
push 0
lea ecx, [ebp - 0x5b90]
push ecx
call fcn.0051e2db
add esp, 0x10
jmp 0x4b1511
mov dword [ebp - 0x420], 0
mov edx, dword [ebp - 0x5a5b]
and edx, 0xff
mov dword [0x5ea0b8], edx
mov dword [ebp - 0x5590], 0x1c
mov dword [ebp - 0x530], 0xb4
mov dword [ebp - 0x52c], 0x26
mov dword [ebp - 0xb50], 0x30
mov dword [ebp - 0x5b98], 0x132
mov eax, dword [0x673ea0]
push eax
lea ecx, [ebp - 0x5b90]
push ecx
call fcn.004c016b
add esp, 8
mov dword [ebp - 0x214], eax
cmp dword [0x5ee048], 0
je 0x4b1651
cmp dword [ebp - 0x5ba4], 0
je 0x4b1651
cmp dword [ebp - 0x214], 0
je 0x4b1651
mov dword [ebp - 0x5ba4], 0
push 0x104
push 0
push 0x6785ac
call fcn.0054bf90
add esp, 0xc
push 0x6785ac
call fcn.00529440
add esp, 4
push 0x200
push 0
push 0x5ed874
call fcn.0054bf90
add esp, 0xc
mov edx, dword [ebp - 0x214]
shr edx, 0xa
push edx
push 0x5c4a20
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
push 0x5ed874
push 0x6785ac
call fcn.0054bea0
add esp, 8
push 0x6785ac
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4b1628
push 0
push 0
push 0x5c4a34
mov ecx, dword [ebp - 0x6c0c]
call fcn.00564245
push 0x6785ac
mov ecx, dword [ebp - 0x6c0c]
call fcn.004ad3e0
mov eax, dword [ebp - 0x6c0c]
push eax
push 0x6785ac
call fcn.004ad773
add esp, 8
call fcn.004a5ec3
mov dword [ebp - 0x61bc], 0
jmp 0x4b166c
mov ecx, dword [ebp - 0x61bc]
add ecx, 1
mov dword [ebp - 0x61bc], ecx
mov edx, dword [ebp - 0x61bc]
cmp edx, dword [0x5ea0b8]
jge 0x4b169d
mov eax, dword [ebp - 0x61bc]
xor ecx, ecx
mov cl, byte [ebp + eax - 0x5a10]
test ecx, ecx
je 0x4b169b
mov edx, dword [ebp - 0x61bc]
mov dword [ebp - 0x420], edx
jmp 0x4b169d
jmp 0x4b165d
push 0
mov eax, dword [0x673ea0]
push eax
lea ecx, [ebp - 0x5b90]
push ecx
call fcn.004bff59
add esp, 0xc
mov dword [0x5ee0b0], eax
push 0
push 0
push 0
lea edx, [ebp - 0x5b90]
push edx
call fcn.00530765
add esp, 0x10
cmp dword [0x673ea0], 0
jl 0x4b16f6
cmp dword [0x673ea0], 7
jg 0x4b16f6
mov eax, dword [ebp - 0x5b8d]
and eax, 0xff
and eax, 0x80
mov dword [ebp - 0x4bf0], eax
lea ecx, [ebp - 0x4b58]
push ecx
lea edx, [ebp - 0x5584]
push edx
lea eax, [ebp - 0x5b90]
push eax
call fcn.00533143
add esp, 0xc
push 0
lea ecx, [ebp - 0x5b90]
push ecx
mov edx, dword [ebp - 0x4b58]
push edx
lea eax, [ebp - 0x5480]
push eax
mov ecx, dword [0x5ee0b0]
push ecx
mov edx, dword [ebp - 0x4bf0]
push edx
call fcn.0052ed62
add esp, 0x18
lea eax, [ebp - 0x5480]
push eax
push 0x679684
call fcn.0054be90
add esp, 8
lea ecx, [ebp - 0x61b8]
call fcn.00566717
mov dword [ebp - 4], 0
push 0
push 0x40
lea ecx, [ebp - 0x5480]
push ecx
lea ecx, [ebp - 0x61b8]
call fcn.00566829
test eax, eax
je 0x4b1920
cmp dword [0x673ea0], 0xe
jl 0x4b17a8
cmp dword [0x673ea0], 0x16
jg 0x4b17a8
push 0
push 0x800
lea ecx, [ebp - 0x61b8]
call fcn.005669cb
push 0x200
lea edx, [ebp - 0x418]
push edx
lea ecx, [ebp - 0x61b8]
call fcn.00566946
mov dword [ebp - 0x61c8], 0xc
cmp dword [0x673ea0], 8
jl 0x4b17e5
cmp dword [0x673ea0], 0x16
jg 0x4b17e5
mov dword [ebp - 0x61c8], 0xd
lea eax, [ebp - 0x5480]
push eax
call fcn.0054ce70
add esp, 4
mov dword [ebp - 0x61cc], eax
jmp 0x4b180b
mov ecx, dword [ebp - 0x61cc]
sub ecx, 1
mov dword [ebp - 0x61cc], ecx
cmp dword [ebp - 0x61cc], 0
jle 0x4b182b
mov edx, dword [ebp - 0x61cc]
movsx eax, byte [ebp + edx - 0x5480]
cmp eax, 0x5c
jne 0x4b1829
jmp 0x4b182b
jmp 0x4b17fc
cmp dword [ebp - 0x61cc], 0
jle 0x4b1879
push 0x5c4a48
lea ecx, [ebp - 0x4bec]
push ecx
call fcn.0054bea0
add esp, 8
mov edx, dword [ebp - 0x61cc]
lea eax, [ebp + edx - 0x547f]
push eax
lea ecx, [ebp - 0x4bec]
push ecx
call fcn.0054bea0
add esp, 8
push 0x5c4a4c
lea edx, [ebp - 0x4bec]
push edx
call fcn.0054bea0
add esp, 8
push 0x5c4a50
lea eax, [ebp - 0x4bec]
push eax
call fcn.0054bea0
add esp, 8
lea ecx, [ebp - 0x4bec]
push ecx
call fcn.0054ce70
add esp, 4
mov dword [ebp - 0x61c4], eax
push 0xa
mov edx, dword [ebp - 0x61c8]
lea eax, [ebp + edx - 0x418]
push eax
lea ecx, [ebp - 0x4bec]
push ecx
call fcn.0054ce70
add esp, 4
lea edx, [ebp + eax - 0x4bec]
push edx
call fcn.0054c7e0
add esp, 0xc
mov eax, dword [ebp - 0x61c4]
mov byte [ebp + eax - 0x4be2], 0
push 0xa
mov ecx, dword [ebp - 0x61c8]
lea edx, [ebp + ecx - 0x418]
push edx
push 0x679884
call fcn.0054c7e0
add esp, 0xc
mov byte [0x67988e], 0
lea eax, [ebp - 0x4bec]
push eax
mov ecx, dword [0x5eaa48]
call fcn.0056567d
lea ecx, [ebp - 0x61b8]
call fcn.00566a44
push 0x200
lea ecx, [ebp - 0x4df0]
push ecx
mov edx, dword [ebp - 0x5588]
push edx
mov eax, dword [ebp - 0x538]
push eax
mov ecx, dword [ebp - 0x4b6c]
push ecx
mov edx, dword [0x67aaa8]
push edx
call fcn.0051b8e5
add esp, 0x18
push 0x200
lea eax, [ebp - 0x4df0]
push eax
lea ecx, [ebp - 0x210]
push ecx
call fcn.0054c7e0
add esp, 0xc
cmp dword [0x5ea004], 0
jle 0x4b1a04
mov edx, dword [ebp - 0x5590]
xor eax, eax
mov al, byte [ebp + edx - 0x5b90]
shl eax, 0x18
mov ecx, dword [ebp - 0x5590]
xor edx, edx
mov dl, byte [ebp + ecx - 0x5b8f]
shl edx, 0x10
add eax, edx
mov ecx, dword [ebp - 0x5590]
xor edx, edx
mov dl, byte [ebp + ecx - 0x5b8e]
shl edx, 8
add eax, edx
mov ecx, dword [ebp - 0x5590]
xor edx, edx
mov dl, byte [ebp + ecx - 0x5b8d]
add eax, edx
mov dword [0x5ea128], eax
mov eax, dword [0x5ea128]
shr eax, 0xb
push eax
push 0x5c4a64
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
push 0x5ed874
mov ecx, dword [0x5ea004]
push ecx
mov edx, dword [ebp - 0x4f7c]
sub edx, 1
push edx
mov ecx, dword [0x5eaa50]
call fcn.0041805c
cmp dword [0x673ea0], 0
jl 0x4b1b66
cmp dword [0x673ea0], 7
jg 0x4b1b66
mov eax, dword [ebp - 0x4de0]
and eax, 0xff
cmp eax, 3
jne 0x4b1b66
mov ecx, dword [ebp - 0x4d5e]
and ecx, 0xff
cmp ecx, 0x16
jne 0x4b1b66
mov edx, dword [ebp - 0x4d5d]
and edx, 0xff
cmp edx, 3
jne 0x4b1b66
push 0x10
push 0
lea eax, [ebp - 0x4b68]
push eax
call fcn.0054bf90
add esp, 0xc
mov byte [ebp - 0x4b68], 0xf0
mov byte [ebp - 0x4b67], 0xa
mov byte [ebp - 0x4b66], 3
mov cl, byte [ebp - 0x5b8a]
mov byte [ebp - 0x4b65], cl
mov byte [ebp - 0x4b64], 3
mov dl, byte [ebp - 0x420]
mov byte [ebp - 0x4b62], dl
mov byte [ebp - 0x4b5d], 1
push 0x200
push 0
lea eax, [ebp - 0x63cc]
push eax
call fcn.0054bf90
add esp, 0xc
push 0
lea ecx, [ebp - 0x4b68]
push ecx
push 0x200
lea edx, [ebp - 0x63cc]
push edx
mov eax, dword [ebp - 0x5588]
push eax
mov cl, byte [ebp - 0x5ba0]
push ecx
mov dl, byte [ebp - 0x4b54]
push edx
mov eax, dword [ebp - 0x534]
push eax
mov ecx, dword [ebp - 0x538]
push ecx
mov edx, dword [ebp - 0x4b6c]
push edx
mov eax, dword [0x67aaa8]
push eax
call fcn.004c0e6e
add esp, 0x2c
mov dword [ebp - 0x5b9c], eax
mov dword [ebp - 0xb4c], 0
jmp 0x4b1b2e
mov ecx, dword [ebp - 0xb4c]
add ecx, 1
mov dword [ebp - 0xb4c], ecx
mov eax, dword [ebp - 0x63cc]
and eax, 0xff
cdq
sub eax, edx
sar eax, 1
cmp dword [ebp - 0xb4c], eax
jge 0x4b1b61
mov edx, dword [ebp - 0xb4c]
mov eax, dword [ebp - 0xb4c]
mov cl, byte [ebp + eax*2 - 0x63ca]
mov byte [edx + 0x5ed874], cl
jmp 0x4b1b1f
jmp 0x4b1c05
mov edx, dword [ebp - 0x530]
xor eax, eax
mov al, byte [ebp + edx - 0x4df2]
test eax, eax
je 0x4b1be7
mov ecx, dword [ebp - 0x530]
xor edx, edx
mov dl, byte [ebp + ecx - 0x4df2]
mov eax, edx
sub eax, 2
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x52c], eax
mov dword [ebp - 0xb4c], 0
jmp 0x4b1bb3
mov eax, dword [ebp - 0xb4c]
add eax, 1
mov dword [ebp - 0xb4c], eax
mov ecx, dword [ebp - 0xb4c]
cmp ecx, dword [ebp - 0x52c]
jge 0x4b1be5
mov edx, dword [ebp - 0xb4c]
mov eax, dword [ebp - 0x530]
lea ecx, [eax + edx*2]
mov edx, dword [ebp - 0xb4c]
mov al, byte [ebp + ecx - 0x4df0]
mov byte [edx + 0x5ed874], al
jmp 0x4b1ba4
jmp 0x4b1c05
mov dword [ebp - 0xb4c], 0
push 0x200
push 0
push 0x5ed874
call fcn.0054bf90
add esp, 0xc
mov ecx, dword [ebp - 0xb4c]
mov byte [ecx + 0x5ed874], 0
cmp dword [0x5ea008], 0
jle 0x4b1c66
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5ed874
push 0
push 0
lea edx, [ebp - 0x4df0]
push edx
mov eax, dword [0x673ea0]
push eax
call fcn.0051ca56
add esp, 0x2c
push 0x5ed874
mov ecx, dword [0x5ea008]
push ecx
mov edx, dword [ebp - 0x4f7c]
sub edx, 1
push edx
mov ecx, dword [0x5eaa50]
call fcn.0041805c
cmp dword [0x5ea010], 0
jle 0x4b2170
push 0x200
push 0
push 0x5ed874
call fcn.0054bf90
add esp, 0xc
mov eax, dword [0x5edf9c]
push eax
mov ecx, dword [0x673e50]
push ecx
mov edx, dword [0x673e54]
push edx
push 0x5ed874
mov eax, dword [ebp - 0xb50]
lea ecx, [ebp + eax - 0x5b90]
push ecx
mov ecx, dword [ebp - 0x6c0c]
call fcn.004b5f1e
push pe_nt_image_headers32
push 0
push 0x679f84
call fcn.0054bf90
add esp, 0xc
push 0x5ed874
push 0x679f84
call fcn.0054be90
add esp, 8
push 0x5ed874
call fcn.0054ce70
add esp, 4
test eax, eax
je 0x4b1d78
mov edx, dword [ebp - 0xb50]
xor eax, eax
mov al, byte [ebp + edx - 0x5b8b]
push eax
mov ecx, dword [ebp - 0xb50]
xor edx, edx
mov dl, byte [ebp + ecx - 0x5b8c]
push edx
mov eax, dword [ebp - 0xb50]
xor ecx, ecx
mov cl, byte [ebp + eax - 0x5b8d]
push ecx
mov edx, dword [ebp - 0xb50]
xor eax, eax
mov al, byte [ebp + edx - 0x5b8e]
push eax
mov ecx, dword [ebp - 0xb50]
xor edx, edx
mov dl, byte [ebp + ecx - 0x5b8f]
push edx
mov eax, dword [ebp - 0xb50]
xor ecx, ecx
mov cl, byte [ebp + eax - 0x5b90]
push ecx
push 0x5c4a6c
push 0x5ed674
call fcn.0054c6e3
add esp, 0x20
push 0x5ed674
push 0x5ed874
call fcn.0054bea0
add esp, 8
push 0x5ed874
call fcn.0054ce70
add esp, 4
test eax, eax
jne 0x4b1eda
mov dword [ebp - 0x63d0], 0
jmp 0x4b1da8
mov edx, dword [ebp - 0x63d0]
add edx, 1
mov dword [ebp - 0x63d0], edx
cmp dword [ebp - 0x63d0], 8
jge 0x4b1eda
mov eax, dword [ebp - 0x63d0]
shl eax, 4
mov ecx, dword [ebp - 0xb50]
add ecx, eax
xor edx, edx
mov dl, byte [ebp + ecx - 0x5b90]
mov dword [ebp - 0x6c1c], edx
mov eax, dword [ebp - 0x6c1c]
sub eax, 7
mov dword [ebp - 0x6c1c], eax
cmp dword [ebp - 0x6c1c], 0xe5
ja case.0x4b1e02.8
mov edx, dword [ebp - 0x6c1c]
xor ecx, ecx
mov cl, byte [edx + 0x4b2c0d]
jmp dword [ecx*4 + 0x4b2be9]
push 0x5c4a88
push 0x5c4a90
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
jmp case.0x4b1e02.8
push 0x5c4a94
push 0x5c4a98
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
jmp case.0x4b1e02.8
push 0x5c4a9c
push 0x5c4aa4
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
jmp case.0x4b1e02.8
push 0x5c4aa8
push 0x5c4ab0
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
jmp case.0x4b1e02.8
push 0x5c4ab4
push 0x5c4abc
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
jmp case.0x4b1e02.8
push 0x5c4ac0
push 0x5c4ac8
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
jmp case.0x4b1e02.8
push 0x5c4acc
push 0x5c4ad8
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
jmp case.0x4b1e02.8
push 0x5c4adc
push 0x5c4ae4
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
jmp 0x4b1d99
push 0x5ed874
push 0x5eaae0
call fcn.0054be90
add esp, 8
push 0x5ed874
call fcn.0054ce70
add esp, 4
test eax, eax
ja 0x4b1f74
mov eax, dword [ebp - 0x5b00]
and eax, 0xff
push eax
mov ecx, dword [ebp - 0x5b10]
and ecx, 0xff
push ecx
mov edx, dword [ebp - 0x5b20]
and edx, 0xff
push edx
mov eax, dword [ebp - 0x5b30]
and eax, 0xff
push eax
mov ecx, dword [ebp - 0x5b40]
and ecx, 0xff
push ecx
mov edx, dword [ebp - 0x5b50]
and edx, 0xff
push edx
mov eax, dword [ebp - 0x5b60]
and eax, 0xff
push eax
mov ecx, dword [ebp - 0x5b70]
and ecx, 0xff
push ecx
push 0x5c4ae8
push 0x5ed874
call fcn.0054c6e3
add esp, 0x28
cmp dword [0x5ea0a0], 0
jne 0x4b214f
mov edx, dword [ebp - 0x5b70]
and edx, 0xff
mov eax, dword [ebp - 0x5b60]
and eax, 0xff
add edx, eax
mov ecx, dword [ebp - 0x5b50]
and ecx, 0xff
add edx, ecx
mov eax, dword [ebp - 0x5b40]
and eax, 0xff
add edx, eax
mov ecx, dword [ebp - 0x5b30]
and ecx, 0xff
add edx, ecx
mov eax, dword [ebp - 0x5b20]
and eax, 0xff
add edx, eax
mov ecx, dword [ebp - 0x5b10]
and ecx, 0xff
add edx, ecx
mov eax, dword [ebp - 0x5b00]
and eax, 0xff
add edx, eax
test edx, edx
je 0x4b214f
cmp dword [0x673ea0], 0xe
jl 0x4b200a
cmp dword [0x673ea0], 0x16
jg 0x4b200a
jmp 0x4b214f
cmp dword [0x673ea0], 8
jl 0x4b20b6
cmp dword [0x673ea0], 0xd
jg 0x4b20b6
lea ecx, [ebp - 0x5b90]
push ecx
call fcn.00536663
add esp, 4
mov dword [ebp - 0x6c20], eax
cmp dword [ebp - 0x6c20], 3
ja case.default.0x4b2048
mov edx, dword [ebp - 0x6c20]
jmp dword [edx*4 + 0x4b2cf3]
push 0x5c4b04
push 0x5ed874
call fcn.0054bea0
add esp, 8
jmp 0x4b20b1
push 0x5c4b0c
push 0x5ed874
call fcn.0054bea0
add esp, 8
jmp 0x4b20b1
push 0x5c4b14
push 0x5ed874
call fcn.0054bea0
add esp, 8
jmp 0x4b20b1
push 0x5c4b1c
push 0x5ed874
call fcn.0054bea0
add esp, 8
jmp 0x4b20b1
push 0x5c4b24
push 0x5ed874
call fcn.0054bea0
add esp, 8
jmp 0x4b214f
cmp dword [0x673ea0], 0
jl 0x4b2102
cmp dword [0x673ea0], 7
jg 0x4b2102
mov eax, dword [ebp - 0x5b8d]
and eax, 0xff
and eax, 0x20
test eax, eax
je 0x4b20ee
push 0x5c4b30
push 0x5ed874
call fcn.0054bea0
add esp, 8
jmp 0x4b2100
push 0x5c4b38
push 0x5ed874
call fcn.0054bea0
add esp, 8
jmp 0x4b214f
mov ecx, dword [ebp - 0x5b85]
and ecx, 0xff
and ecx, 0x20
test ecx, ecx
je 0x4b213d
push 0x5c4b40
push 0x5ed874
call fcn.0054bea0
add esp, 8
mov dword [ebp - 0xb48], 1
mov dword [0x67f9ec], 1
jmp 0x4b214f
push 0x5c4b48
push 0x5ed874
call fcn.0054bea0
add esp, 8
push 0x5ed874
mov edx, dword [0x5ea010]
push edx
mov eax, dword [ebp - 0x4f7c]
sub eax, 1
push eax
mov ecx, dword [0x5eaa50]
call fcn.0041805c
mov ecx, dword [ebp - 0x41c]
and ecx, 0xff
xor edx, edx
mov dl, byte [ebp + ecx - 0x4de6]
push edx
mov eax, dword [ebp - 0x41c]
and eax, 0xff
xor ecx, ecx
mov cl, byte [ebp + eax - 0x4de5]
push ecx
mov edx, dword [ebp - 0x41c]
and edx, 0xff
xor eax, eax
mov al, byte [ebp + edx - 0x4de8]
push eax
mov ecx, dword [ebp - 0x41c]
and ecx, 0xff
xor edx, edx
mov dl, byte [ebp + ecx - 0x4de7]
push edx
push 0x5c4b50
push 0x5ed874
call fcn.0054c6e3
add esp, 0x18
cmp dword [0x5ea00c], 0
jle 0x4b2202
push 0x5ed874
mov eax, dword [0x5ea00c]
push eax
mov ecx, dword [ebp - 0x4f7c]
sub ecx, 1
push ecx
mov ecx, dword [0x5eaa50]
call fcn.0041805c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x61b8]
call fcn.0056676c
mov dword [ebp - 0x5ba8], 0
mov dword [ebp - 0x5b94], 0
cmp dword [0x5bd8f0], 0
jne 0x4b223d
mov dword [ebp - 0x5b94], 0
jmp 0x4b2298
push pe_nt_image_headers32
push 0
lea edx, [ebp - 0x537c]
push edx
call fcn.0054bf90
add esp, 0xc
push 0
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x5990]
push ecx
lea edx, [ebp - 0x938]
push edx
lea eax, [ebp - 0x537c]
push eax
mov ecx, dword [ebp - 0x5588]
push ecx
mov edx, dword [ebp - 0x538]
push edx
mov eax, dword [ebp - 0x4b6c]
push eax
mov ecx, dword [0x67aaa8]
push ecx
call fcn.004e796c
add esp, 0x24
mov dword [ebp - 0x5b94], eax
mov edx, dword [ebp - 0x5b70]
and edx, 0xff
mov eax, dword [ebp - 0x5b60]
and eax, 0xff
add edx, eax
mov ecx, dword [ebp - 0x5b50]
and ecx, 0xff
add edx, ecx
mov eax, dword [ebp - 0x5b40]
and eax, 0xff
add edx, eax
mov ecx, dword [ebp - 0x5b30]
and ecx, 0xff
add edx, ecx
mov eax, dword [ebp - 0x5b20]
and eax, 0xff
add edx, eax
mov ecx, dword [ebp - 0x5b10]
and ecx, 0xff
add edx, ecx
mov eax, dword [ebp - 0x5b00]
and eax, 0xff
add edx, eax
test edx, edx
jne 0x4b2310
mov dword [ebp - 0x5b94], 0
cmp dword [0x673ea0], 0xe
jl 0x4b2365
cmp dword [0x673ea0], 0x16
jg 0x4b2365
mov ecx, dword [ebp - 0x5a90]
and ecx, 0xff
cmp ecx, 0xff
jne 0x4b2365
mov edx, dword [ebp - 0x5a8f]
and edx, 0xff
cmp edx, 0xff
jne 0x4b2365
mov dword [ebp - 0x5b94], 0
mov dword [ebp - 0x5ba8], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xb4c], 0
jmp 0x4b2380
mov eax, dword [ebp - 0xb4c]
add eax, 1
mov dword [ebp - 0xb4c], eax
cmp dword [ebp - 0xb4c], 0x100
jae 0x4b23b0
mov ecx, dword [ebp - 0xb4c]
cmp dword [ebp + ecx*4 - 0x537c], 0xfff
jne 0x4b23ae
mov edx, dword [ebp - 0x5ba8]
add edx, 1
mov dword [ebp - 0x5ba8], edx
jmp 0x4b2371
cmp dword [0x5ea014], 0
jle 0x4b23f3
mov eax, dword [ebp - 0x5b94]
push eax
push 0x5c4b64
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
push 0x5ed874
mov ecx, dword [0x5ea014]
push ecx
mov edx, dword [ebp - 0x4f7c]
sub edx, 1
push edx
mov ecx, dword [0x5eaa50]
call fcn.0041805c
push 0x200
push 0
push 0x5ed874
call fcn.0054bf90
add esp, 0xc
mov dword [ebp - 0x611c], 0
mov dword [ebp - 0xb4c], 0
jmp 0x4b242c
mov eax, dword [ebp - 0xb4c]
add eax, 1
mov dword [ebp - 0xb4c], eax
cmp dword [ebp - 0xb4c], 0x18
jge 0x4b2483
mov ecx, dword [ebp - 0x5b98]
add ecx, dword [ebp - 0xb4c]
mov edx, dword [ebp - 0x41c]
and edx, 0xff
lea eax, [ebp + edx - 0x4df0]
mov edx, dword [ebp - 0xb4c]
add edx, dword [ebp - 0x558c]
mov al, byte [eax + ecx]
mov byte [edx + 0x5ed874], al
cmp dword [ebp - 0xb4c], 7
jne 0x4b2481
mov ecx, dword [ebp - 0x558c]
add ecx, 1
mov dword [ebp - 0x558c], ecx
jmp 0x4b241d
mov dword [ebp - 0x558c], 7
jmp 0x4b249e
mov edx, dword [ebp - 0x558c]
sub edx, 1
mov dword [ebp - 0x558c], edx
cmp dword [ebp - 0x558c], 0
jle 0x4b24bd
mov eax, dword [ebp - 0x558c]
movsx ecx, byte [eax + 0x5ed874]
cmp ecx, 0x20
je 0x4b24bb
jmp 0x4b24bd
jmp 0x4b248f
mov byte [0x5ed87c], 0x2f
mov byte [0x5ed88e], 0
cmp dword [ebp - 0x558c], 0
jle 0x4b2529
cmp dword [ebp - 0x558c], 7
jge 0x4b2529
mov edx, dword [ebp - 0x558c]
add edx, 1
mov dword [ebp - 0xb4c], edx
jmp 0x4b24fd
mov eax, dword [ebp - 0xb4c]
add eax, 1
mov dword [ebp - 0xb4c], eax
cmp dword [ebp - 0xb4c], 0x1a
jge 0x4b2529
mov ecx, dword [ebp - 0xb4c]
add ecx, 7
sub ecx, dword [ebp - 0x558c]
mov edx, dword [ebp - 0xb4c]
mov al, byte [ecx + 0x5ed874]
mov byte [edx + 0x5ed874], al
jmp 0x4b24ee
cmp dword [0x5ea018], 0
jle 0x4b2587
push 0
push 0
push 0x5ed87d
push 0x5ed874
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x4df0]
push ecx
mov edx, dword [0x673ea0]
push edx
call fcn.0051ca56
add esp, 0x2c
mov byte [0x5ed87c], 0x2f
push 0x5ed874
mov eax, dword [0x5ea018]
push eax
mov ecx, dword [ebp - 0x4f7c]
sub ecx, 1
push ecx
mov ecx, dword [0x5eaa50]
call fcn.0041805c
push 0x200
push 0
lea edx, [ebp - 0x6118]
push edx
call fcn.0054bf90
add esp, 0xc
push 0x200
lea eax, [ebp - 0x6118]
push eax
mov ecx, dword [ebp - 0x5588]
push ecx
mov edx, dword [ebp - 0x538]
push edx
mov eax, dword [ebp - 0x4b6c]
push eax
mov ecx, dword [0x67aaa8]
push ecx
call fcn.0051b4c9
add esp, 0x18
mov edx, dword [ebp - 0x5f19]
and edx, 0xff
test edx, edx
je 0x4b25f6
push 0x5c4b68
push 0x5c4b6c
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
jmp 0x4b260d
push 0x5c4b70
push 0x5c4b74
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
cmp dword [0x5ea01c], 0
jle 0x4b2636
push 0x5ed874
mov eax, dword [0x5ea01c]
push eax
mov ecx, dword [ebp - 0x4f7c]
sub ecx, 1
push ecx
mov ecx, dword [0x5eaa50]
call fcn.0041805c
cmp dword [0x5ea020], 0
jle 0x4b2a14
push 0x5c4b78
push 0x5c4b80
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
lea ecx, [ebp - 0x65d4]
call fcn.00401420
mov dword [ebp - 4], 1
lea edx, [ebp - 0x67dc]
push edx
call fcn.00529440
add esp, 4
mov dword [ebp - 0xb4c], 0
jmp 0x4b2696
mov eax, dword [ebp - 0xb4c]
add eax, 1
mov dword [ebp - 0xb4c], eax
cmp dword [ebp - 0xb4c], 0x11
jge 0x4b26de
mov ecx, dword [ebp - 0xb4c]
imul ecx, ecx, 0xc
mov edx, dword [0x673ea0]
cmp edx, dword [ecx + 0x5cb0e0]
jne 0x4b26dc
mov eax, dword [ebp - 0xb4c]
imul eax, eax, 0xc
mov ecx, dword [eax + 0x5cb0dc]
push ecx
push 0x5c4b84
lea edx, [ebp - 0x65d4]
push edx
call fcn.0055f827
add esp, 0xc
jmp 0x4b26de
jmp 0x4b2687
mov eax, dword [ebp - 0x65d4]
push eax
lea ecx, [ebp - 0x67dc]
push ecx
push 0x5c4b94
lea edx, [ebp - 0x65d0]
push edx
call fcn.0054c6e3
add esp, 0x10
mov byte [ebp - 0x65d8], 0
push 0x5c4ba8
lea eax, [ebp - 0x65d0]
push eax
call fcn.0054cc9f
add esp, 8
mov dword [ebp - 0x65dc], eax
cmp dword [ebp - 0x65dc], 0
je 0x4b2a02
lea ecx, [ebp - 0x67ec]
call fcn.00401420
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x67e0]
call fcn.00401420
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x67f0]
call fcn.00401420
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x67e4]
call fcn.00401420
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xb19]
and ecx, 0xff
push ecx
mov edx, dword [ebp - 0xb1a]
and edx, 0xff
push edx
mov eax, dword [ebp - 0xb1b]
and eax, 0xff
push eax
mov ecx, dword [ebp - 0xb1c]
and ecx, 0xff
push ecx
push 0x5c4bac
lea edx, [ebp - 0x67e4]
push edx
call fcn.0055f827
add esp, 0x18
mov eax, dword [ebp - 0x65dc]
mov ecx, dword [eax + 0xc]
and ecx, 0x10
test ecx, ecx
jne 0x4b2857
mov edx, dword [ebp - 0x65dc]
push edx
push 0x400
lea eax, [ebp - 0x6bf4]
push eax
call fcn.0054e601
add esp, 0xc
lea ecx, [ebp - 0x6bf4]
push ecx
lea ecx, [ebp - 0x67ec]
call fcn.005621f5
lea ecx, [ebp - 0x67ec]
call fcn.0056256e
lea ecx, [ebp - 0x67e4]
call fcn.005287a0
push eax
lea ecx, [ebp - 0x67ec]
call fcn.0055f4a1
test eax, eax
jl 0x4b2852
lea edx, [ebp - 0x67ec]
push edx
lea ecx, [ebp - 0x67f0]
call fcn.005621a5
mov eax, dword [ebp - 0x65d8]
and eax, 0xff
test eax, eax
jne 0x4b2852
lea ecx, [ebp - 0x67ec]
push ecx
lea ecx, [ebp - 0x67e0]
call fcn.005621a5
mov byte [ebp - 0x65d8], 1
jmp 0x4b27b1
mov edx, dword [ebp - 0x65dc]
push edx
call fcn.0054cbf2
add esp, 4
mov byte [ebp - 0x67f4], 0
mov byte [ebp - 0x67e8], 0
mov al, byte [ebp - 0x77]
mov byte [ebp - 0x67f4], al
mov cl, byte [ebp - 0x76]
mov byte [ebp - 0x67e8], cl
mov edx, dword [ebp - 0x67e8]
and edx, 0xff
push edx
mov eax, dword [ebp - 0x67f4]
and eax, 0xff
push eax
push 0x5c4bc0
lea ecx, [ebp - 0x67ec]
push ecx
call fcn.0055f827
add esp, 0x10
lea ecx, [ebp - 0x67f0]
call fcn.00401440
test eax, eax
jne 0x4b28de
push 0x5c4bcc
push 0x5c4bd8
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
jmp 0x4b29a6
mov dword [ebp - 0x6bf8], 0x1a
cmp dword [0x673ea0], 4
jl 0x4b2904
cmp dword [0x673ea0], 5
jg 0x4b2904
mov dword [ebp - 0x6bf8], 0x26
push 5
mov edx, dword [ebp - 0x6bf8]
push edx
lea eax, [ebp - 0x6c08]
push eax
lea ecx, [ebp - 0x67f0]
call fcn.0055f2f5
mov dword [ebp - 0x6c24], eax
mov ecx, dword [ebp - 0x6c24]
mov dword [ebp - 0x6c28], ecx
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x6c28]
call fcn.005287a0
push eax
lea ecx, [ebp - 0x67ec]
call fcn.00402860
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x6c04], al
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x6c08]
call fcn.0056206c
mov edx, dword [ebp - 0x6c04]
and edx, 0xff
test edx, edx
je 0x4b298f
push 0x5c4bdc
push 0x5c4bf0
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
jmp 0x4b29a6
push 0x5c4bf4
push 0x5c4c00
push 0x5ed874
call fcn.0054c6e3
add esp, 0xc
push 0x5ed874
mov eax, dword [0x5ea020]
push eax
mov ecx, dword [ebp - 0x4f7c]
sub ecx, 1
push ecx
mov ecx, dword [0x5eaa50]
call fcn.0041805c
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x67e4]
call fcn.0056206c
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x67f0]
call fcn.0056206c
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x67e0]
call fcn.0056206c
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x67ec]
call fcn.0056206c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x65d4]
call fcn.0056206c
cmp dword [0x673ea0], 0
jl 0x4b2a34
cmp dword [0x673ea0], 7
jg 0x4b2a34
mov edx, dword [0x673ea8]
mov dword [0x673eac], edx
jmp 0x4b2a3e
mov dword [0x673eac], 0x3f4
cmp dword [0x67aaa8], 0
je 0x4b2a63
mov eax, dword [ebp - 0x4b6c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x538]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4b2a72
mov edx, dword [ebp - 0x5588]
push edx
call fcn.004beacb
add esp, 4
cmp dword [0x67abbc], 0
je 0x4b2a9b
mov eax, dword [ebp - 0x214]
push eax
push 0x5c4c04
lea ecx, [ebp - 0x4e70]
push ecx
call fcn.0054c6e3
add esp, 0xc
jmp 0x4b2b81
cmp dword [ebp - 0x10], 0
je 0x4b2b16
cmp dword [ebp - 0x214], 0x10000
jbe 0x4b2ae3
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x5ba8]
shl eax, 0xa
mov ecx, dword [ebp - 0x5b94]
add ecx, eax
push ecx
mov edx, dword [ebp - 0x214]
shr edx, 0xa
push edx
push 0x5c4c0c
lea eax, [ebp - 0x4e70]
push eax
call fcn.0054c6e3
add esp, 0x14
jmp 0x4b2b14
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x5ba8]
shl edx, 0xa
mov eax, dword [ebp - 0x5b94]
add eax, edx
push eax
mov ecx, dword [ebp - 0x214]
push ecx
push 0x5c4c1c
lea edx, [ebp - 0x4e70]
push edx
call fcn.0054c6e3
add esp, 0x14
jmp 0x4b2b81
cmp dword [ebp - 0x214], 0x10000
jbe 0x4b2b54
mov eax, dword [ebp - 0x5ba8]
shl eax, 0xa
mov ecx, dword [ebp - 0x5b94]
add ecx, eax
push ecx
mov edx, dword [ebp - 0x214]
shr edx, 0xa
push edx
push 0x5c4c2c
lea eax, [ebp - 0x4e70]
push eax
call fcn.0054c6e3
add esp, 0x10
jmp 0x4b2b81
mov ecx, dword [ebp - 0x5ba8]
shl ecx, 0xa
mov edx, dword [ebp - 0x5b94]
add edx, ecx
push edx
mov eax, dword [ebp - 0x214]
push eax
push 0x5c4c3c
lea ecx, [ebp - 0x4e70]
push ecx
call fcn.0054c6e3
add esp, 0x10
lea edx, [ebp - 0x4e70]
push edx
mov eax, dword [ebp - 0x4f7c]
mov ecx, dword [eax*4 + 0x5eaa58]
call fcn.0056567d
jmp 0x4b09e9
mov dword [0x67fa14], 0
cmp dword [ebp - 0x528], 0
jne 0x4b2bd4
cmp dword [0x5ee044], 0
jne 0x4b2bd4
push 1
push 0x3ea
mov ecx, dword [ebp - 0x6c0c]
call fcn.005654d4
mov ecx, eax
call fcn.005657c0
call fcn.004ff6d8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret