Function at 0x475ed0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x414
mov eax, dword [0x574a28]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileType]
cmp eax, 1
je 0x475f00
xor eax, eax
jmp 0x476d8d
push 0
push 0
push 0
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea edx, [ebp - 4]
push edx
push 4
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 4
jne 0x476d8b
mov dword [ebp - 0xc], 0
mov byte [ebp - 8], 0
xor edx, edx
mov word [ebp - 7], dx
mov byte [ebp - 5], dl
mov dword [ebp - 0xc], 0
jmp 0x475f56
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 4
jge 0x475f82
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0xc]
mov al, byte [ecx]
mov byte [ebp + edx - 8], al
mov ecx, dword [ebp - 0xc]
movzx edx, byte [ebp + ecx - 8]
xor edx, 0xa9
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 8], dl
jmp 0x475f4d
push 4
push str.8615
lea ecx, [ebp - 8]
push ecx
call fcn.004cd0c1
add esp, 0xc
test eax, eax
jne 0x47606c
push 4
lea edx, [ebp - 8]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.004cb2f0
add esp, 0xc
mov byte [ebp - 0x410], 0
push 0x3ff
push 0
lea ecx, [ebp - 0x40f]
push ecx
call fcn.004cb660
add esp, 0xc
push 0
lea edx, [ebp - 4]
push edx
push 0x3fc
lea eax, [ebp - 0x40c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x414], 0
jmp 0x476003
mov edx, dword [ebp - 0x414]
add edx, 1
mov dword [ebp - 0x414], edx
cmp dword [ebp - 0x414], 0x400
jge 0x476032
mov eax, dword [ebp - 0x414]
movzx ecx, byte [ebp + eax - 0x410]
xor ecx, 0xa9
mov edx, dword [ebp - 0x414]
mov byte [ebp + edx - 0x410], cl
jmp 0x475ff4
push 0x40
lea eax, [ebp - 0x3cc]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 6
push ecx
call fcn.004cb2f0
add esp, 0xc
push 0x1e
lea edx, [ebp - 0x40c]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0x38
push eax
call fcn.004cb2f0
add esp, 0xc
mov eax, 1
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x47607e
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 4
jge 0x47609c
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx]
xor eax, 0xff
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx], al
jmp 0x476075
push 4
push str.8610
mov edx, dword [ebp + 0xc]
push edx
call fcn.004cd0c1
add esp, 0xc
test eax, eax
jne 0x4761be
push 0
lea eax, [ebp - 4]
push eax
push 4
mov ecx, dword [ebp + 0xc]
add ecx, 6
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 4
je 0x4760dd
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x4760ef
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 4
jge 0x47611a
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 6]
xor edx, 0xff
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov byte [eax + 6], dl
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 0xa], 0
jmp 0x4760e6
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x2d], 1
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
mov dl, byte [ecx + 9]
mov byte [eax + 0x2c], dl
push 0
lea eax, [ebp - 4]
push eax
push 1
mov ecx, dword [ebp + 0xc]
add ecx, 0xe
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 1
je 0x476153
xor eax, eax
jmp 0x476d8d
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 0xe]
xor ecx, 0xff
mov edx, dword [ebp + 0xc]
mov byte [edx + 0xe], cl
push 0
lea eax, [ebp - 4]
push eax
push 1
mov ecx, dword [ebp + 0xc]
add ecx, 0x38
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 1
je 0x47618c
xor eax, eax
jmp 0x476d8d
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 0x38]
xor ecx, 0xff
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x38], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 0x2d]
add ecx, 9
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x56], cl
mov eax, 1
jmp 0x476d8d
push 4
push str.8611
mov eax, dword [ebp + 0xc]
push eax
call fcn.004cd0c1
add esp, 0xc
test eax, eax
je 0x4761f0
push 4
push str.8612
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004cd0c1
add esp, 0xc
test eax, eax
jne 0x4764c0
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x56], 0x37
push 0
lea eax, [ebp - 4]
push eax
push 2
mov ecx, dword [ebp + 0xc]
add ecx, 4
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 2
je 0x47621d
xor eax, eax
jmp 0x476d8d
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
xor ecx, 0xff
mov edx, dword [ebp + 0xc]
mov byte [edx + 4], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 5]
xor ecx, 0xff
mov edx, dword [ebp + 0xc]
mov byte [edx + 5], cl
push 0
lea eax, [ebp - 4]
push eax
push 1
mov ecx, dword [ebp + 0xc]
add ecx, 0x2d
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 1
je 0x476269
xor eax, eax
jmp 0x476d8d
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
xor eax, ecx
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x2d], al
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 5]
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x2d]
sub edx, eax
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x2d], dl
push 0
lea ecx, [ebp - 4]
push ecx
push 8
mov edx, dword [ebp + 0xc]
add edx, 6
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x2d]
cmp edx, 0x1e
jle 0x4762c1
xor eax, eax
jmp 0x476d8d
cmp dword [ebp - 4], 8
je 0x4762ce
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x4762e0
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 8
jge 0x476320
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 4]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 6]
xor ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 6], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 5]
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx + 6]
sub eax, ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 6], al
jmp 0x4762d7
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x2c], 0
push 0
lea eax, [ebp - 4]
push eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x2d]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0xe
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
cmp dword [ebp - 4], eax
je 0x476359
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x47636b
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
cmp dword [ebp - 0xc], eax
jge 0x4763b1
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 4]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0xe]
xor ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 0xe], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 5]
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0xe]
sub eax, ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 0xe], al
jmp 0x476362
push 0
lea edx, [ebp - 4]
push edx
push 0xa
mov eax, dword [ebp + 0xc]
add eax, 0x2e
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 0xa
je 0x4763d7
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x4763e9
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0xa
jge 0x476429
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x2e]
xor eax, ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 0x2e], al
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 5]
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x2e]
sub edx, eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov byte [eax + 0x2e], dl
jmp 0x4763e0
push 0
lea ecx, [ebp - 4]
push ecx
push 0x1e
mov edx, dword [ebp + 0xc]
add edx, 0x38
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 0x1e
je 0x47644f
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x476461
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x1e
jge 0x4764a1
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x38]
xor edx, eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov byte [eax + 0x38], dl
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 5]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x38]
sub ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 0x38], cl
jmp 0x476458
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 0x2d]
add ecx, 0x37
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x56], cl
mov eax, 1
jmp 0x476d8d
push 4
push str.8613
mov eax, dword [ebp + 0xc]
push eax
call fcn.004cd0c1
add esp, 0xc
test eax, eax
je 0x4764f2
push 4
push str.9610
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004cd0c1
add esp, 0xc
test eax, eax
jne 0x4767c2
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x56], 0x37
push 0
lea eax, [ebp - 4]
push eax
push 2
mov ecx, dword [ebp + 0xc]
add ecx, 4
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 2
je 0x47651f
xor eax, eax
jmp 0x476d8d
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
xor ecx, 0xff
mov edx, dword [ebp + 0xc]
mov byte [edx + 4], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 5]
xor ecx, 0xff
mov edx, dword [ebp + 0xc]
mov byte [edx + 5], cl
push 0
lea eax, [ebp - 4]
push eax
push 1
mov ecx, dword [ebp + 0xc]
add ecx, 0x2d
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 1
je 0x47656b
xor eax, eax
jmp 0x476d8d
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
xor eax, ecx
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x2d], al
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 5]
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x2d]
sub edx, eax
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x2d], dl
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x2d]
cmp edx, 0x1e
jle 0x4765aa
xor eax, eax
jmp 0x476d8d
push 0
lea eax, [ebp - 4]
push eax
push 8
mov ecx, dword [ebp + 0xc]
add ecx, 6
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 8
je 0x4765d0
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x4765e2
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 8
jge 0x476622
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 4]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 6]
xor ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 6], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 5]
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx + 6]
sub eax, ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 6], al
jmp 0x4765d9
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x2c], 0
push 0
lea eax, [ebp - 4]
push eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x2d]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0xe
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
cmp dword [ebp - 4], eax
je 0x47665b
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x47666d
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
cmp dword [ebp - 0xc], eax
jge 0x4766b3
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 4]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0xe]
xor ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 0xe], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 5]
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0xe]
sub eax, ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 0xe], al
jmp 0x476664
push 0
lea edx, [ebp - 4]
push edx
push 0xa
mov eax, dword [ebp + 0xc]
add eax, 0x2e
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 0xa
je 0x4766d9
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x4766eb
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0xa
jge 0x47672b
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x2e]
xor eax, ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 0x2e], al
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 5]
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x2e]
sub edx, eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov byte [eax + 0x2e], dl
jmp 0x4766e2
push 0
lea ecx, [ebp - 4]
push ecx
push 0x1e
mov edx, dword [ebp + 0xc]
add edx, 0x38
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 0x1e
je 0x476751
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x476763
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x1e
jge 0x4767a3
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x38]
xor edx, eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov byte [eax + 0x38], dl
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 5]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x38]
sub ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 0x38], cl
jmp 0x47675a
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 0x2d]
add ecx, 0x37
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x56], cl
mov eax, 1
jmp 0x476d8d
push 4
push str.8614
mov eax, dword [ebp + 0xc]
push eax
call fcn.004cd0c1
add esp, 0xc
test eax, eax
jne 0x476aab
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x56], 0x37
push 0
lea edx, [ebp - 4]
push edx
push 2
mov eax, dword [ebp + 0xc]
add eax, 4
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 2
je 0x47680a
xor eax, eax
jmp 0x476d8d
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
xor eax, 0xaf
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 4], al
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 5]
xor eax, 0xaf
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 5], al
push 0
lea edx, [ebp - 4]
push edx
push 1
mov eax, dword [ebp + 0xc]
add eax, 0x2d
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 1
je 0x476854
xor eax, eax
jmp 0x476d8d
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x2d]
xor edx, eax
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x2d], dl
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 5]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 0x2d]
sub ecx, edx
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x2d], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 0x2d]
cmp ecx, 0x1e
jle 0x476893
xor eax, eax
jmp 0x476d8d
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x2c], 0
push 0
lea eax, [ebp - 4]
push eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x2d]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0xe
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
cmp dword [ebp - 4], eax
je 0x4768cc
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x4768de
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
cmp dword [ebp - 0xc], eax
jge 0x476924
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 4]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0xe]
xor ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 0xe], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 5]
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0xe]
sub eax, ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 0xe], al
jmp 0x4768d5
push 0
lea edx, [ebp - 4]
push edx
push 8
mov eax, dword [ebp + 0xc]
add eax, 6
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 8
je 0x47694a
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x47695c
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 8
jge 0x47699c
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx + 6]
xor eax, ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 6], al
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 5]
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 6]
sub edx, eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov byte [eax + 6], dl
jmp 0x476953
push 0
lea ecx, [ebp - 4]
push ecx
push 0xa
mov edx, dword [ebp + 0xc]
add edx, 0x2e
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 0xa
je 0x4769c2
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x4769d4
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0xa
jge 0x476a14
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x2e]
xor edx, eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov byte [eax + 0x2e], dl
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 5]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x2e]
sub ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 0x2e], cl
jmp 0x4769cb
push 0
lea eax, [ebp - 4]
push eax
push 0x1e
mov ecx, dword [ebp + 0xc]
add ecx, 0x38
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 0x1e
je 0x476a3a
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x476a4c
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x1e
jge 0x476a8c
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 4]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x38]
xor ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 0x38], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 5]
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x38]
sub eax, ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 0x38], al
jmp 0x476a43
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
add eax, 0x37
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x56], al
mov eax, 1
jmp 0x476d8d
push 4
push str.8623
mov edx, dword [ebp + 0xc]
push edx
call fcn.004cd0c1
add esp, 0xc
test eax, eax
jne 0x476d8b
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x56], 0x37
push 0
lea ecx, [ebp - 4]
push ecx
push 2
mov edx, dword [ebp + 0xc]
add edx, 4
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 2
je 0x476af3
xor eax, eax
jmp 0x476d8d
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 4]
xor edx, 0xaf
mov eax, dword [ebp + 0xc]
mov byte [eax + 4], dl
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 5]
xor edx, 0xaf
mov eax, dword [ebp + 0xc]
mov byte [eax + 5], dl
push 0
lea ecx, [ebp - 4]
push ecx
push 1
mov edx, dword [ebp + 0xc]
add edx, 0x2d
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 1
je 0x476b3f
xor eax, eax
jmp 0x476d8d
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 4]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 0x2d]
xor ecx, edx
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x2d], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 5]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
sub eax, ecx
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x2d], al
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
cmp eax, 0x1e
jle 0x476b7e
xor eax, eax
jmp 0x476d8d
push 0
lea ecx, [ebp - 4]
push ecx
push 8
mov edx, dword [ebp + 0xc]
add edx, 6
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 8
je 0x476ba4
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x476bb6
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 8
jge 0x476bf6
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 6]
xor edx, eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov byte [eax + 6], dl
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 5]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 6]
sub ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 6], cl
jmp 0x476bad
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x2c], 0
push 0
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2d]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0xe
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 0x2d]
cmp dword [ebp - 4], ecx
je 0x476c2f
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x476c41
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 0x2d]
cmp dword [ebp - 0xc], ecx
jge 0x476c87
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0xe]
xor edx, eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov byte [eax + 0xe], dl
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 5]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0xe]
sub ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 0xe], cl
jmp 0x476c38
push 0
lea eax, [ebp - 4]
push eax
push 0xa
mov ecx, dword [ebp + 0xc]
add ecx, 0x2e
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 0xa
je 0x476cad
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x476cbf
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xa
jge 0x476cff
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 4]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x2e]
xor ecx, edx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
mov byte [edx + 0x2e], cl
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 5]
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x2e]
sub eax, ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 0x2e], al
jmp 0x476cb6
push 0
lea edx, [ebp - 4]
push edx
push 0x1e
mov eax, dword [ebp + 0xc]
add eax, 0x38
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 0x1e
je 0x476d22
xor eax, eax
jmp 0x476d8d
mov dword [ebp - 0xc], 0
jmp 0x476d34
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0x1e
jge 0x476d74
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x38]
xor eax, ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 0x38], al
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 5]
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x38]
sub edx, eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov byte [eax + 0x38], dl
jmp 0x476d2b
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x2d]
add edx, 0x37
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x56], dl
mov eax, 1
jmp 0x476d8d
xor eax, eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ca80c
mov esp, ebp
pop ebp
ret