Function at 0x470b20
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x4bc0
call fcn.00481410
mov eax, dword [0x4bacc0]
xor eax, esp
mov dword [esp + 0x4bbc], eax
push ebx
push ebp
mov ebp, dword [esp + 0x4bd0]
push edi
mov edi, dword [esp + 0x4bd0]
xor eax, eax
xor ebx, ebx
cmp byte [ebp], al
mov dword [esp + 0x24], edi
jne 0x470b70
mov byte [edi], al
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4bbc]
xor ecx, esp
call fcn.004810ab
add esp, 0x4bc0
ret
push ebp
call fcn.00475fe0
add esp, 4
cmp eax, 1
je 0x470bb8
push 0xc4
call fcn.0046d6b0
add esp, 4
mov edx, edi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx], cl
add eax, 1
add edx, 1
test cl, cl
jne 0x470b90
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x4bbc]
xor ecx, esp
call fcn.004810ab
add esp, 0x4bc0
ret
mov eax, ebp
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x470bc0
sub eax, edx
cmp eax, 0xfc
jbe 0x470c09
push 0xba
call fcn.0046d6b0
add esp, 4
mov edx, edi
mov cl, byte [eax]
mov byte [edx], cl
add eax, 1
add edx, 1
test cl, cl
jne 0x470be1
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x4bbc]
xor ecx, esp
call fcn.004810ab
add esp, 0x4bc0
ret
push esi
push 0x1f42
lea eax, [esp + 0x2c8c]
push ebx
push eax
call fcn.00481440
push 0x2710
lea ecx, [esp + 0x588]
push ebx
push ecx
call fcn.00481440
add esp, 0x18
push ebx
push 0x80
push 3
push ebx
push ebx
push 0x80000000
push ebp
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x470c73
push 0xc4
call fcn.0046d6b0
add esp, 4
mov edx, edi
nop
mov cl, byte [eax]
mov byte [edx], cl
add eax, 1
add edx, 1
test cl, cl
jne 0x470c60
jmp 0x471882
push ebx
lea edx, [esp + 0x38]
push edx
push 0x1f40
lea eax, [esp + 0x2c94]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x47185c
cmp dword [esp + 0x34], 0x1f40
je 0x47185c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x2c88]
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x578], bl
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], ebx
push 0x104
lea edx, [esp + 0x40]
push 0
push edx
call fcn.00481440
push 0x104
lea eax, [esp + 0x150]
push 0
push eax
call fcn.00481440
push 0x104
lea ecx, [esp + 0x260]
push 0
push ecx
call fcn.00481440
lea edx, [esp + 0x268]
push edx
lea eax, [esp + 0x168]
push eax
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.0046e420
add esp, 0x34
test eax, eax
jne 0x471863
cmp byte [esp + 0x3c], bl
je 0x471863
mov edi, str.FILE
lea esi, [esp + 0x3c]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x470cc4
mov edi, str.BINARY
lea esi, [esp + 0x244]
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x470d7b
mov edi, str.AUDIO
lea esi, [esp + 0x244]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x470cc4
lea edx, [esp + 0x44c]
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x470d86
lea ecx, [esp + 0x44c]
push 0x5c
push ecx
call fcn.004818d0
mov byte [eax + 1], bl
lea eax, [esp + 0x148]
add esp, 8
mov edx, eax
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x470db0
lea edi, [esp + 0x44c]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x470dc5
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x38]
push edx
mov ecx, eax
lea eax, [esp + 0x450]
and ecx, 3
push 0x930
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.004751c0
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x30], eax
mov eax, 0x6f74ae27
imul ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x930
add esp, 0xc
sub ecx, eax
jne 0x471863
push 0x104
lea ecx, [esp + 0x40]
push 0
push ecx
call fcn.00481440
push 0x104
lea edx, [esp + 0x150]
push 0
push edx
call fcn.00481440
push 0x104
lea eax, [esp + 0x260]
push 0
push eax
call fcn.00481440
lea ecx, [esp + 0x268]
push ecx
lea edx, [esp + 0x168]
push edx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x4c]
push ecx
call fcn.0046e420
add esp, 0x34
test eax, eax
jne 0x471863
mov ebx, dword [esp + 0x30]
jmp 0x470e90
cmp byte [esp + 0x3c], 0
je 0x471725
mov edi, str.TRACK
lea esi, [esp + 0x3c]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4716bd
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x144]
push 0x49e59c
push ecx
call fcn.0048108c
add esp, 0xc
cmp eax, 1
jne 0x471863
mov edi, str.AUDIO
lea esi, [esp + 0x244]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x471029
lea eax, [esp + 0x140]
mov edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x470f00
lea edi, [esp + 0x578]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x470f15
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x578]
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x470f40
mov bp, word [0x4a2210]
lea eax, [esp + 0x44c]
mov word [edi], bp
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x470f60
lea edi, [esp + 0x578]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x470f77
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x578]
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x470fa0
mov word [edi], bp
lea edi, [esp + 0x578]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x470fb7
mov ax, word [0x4a220c]
mov word [edi], ax
lea edi, [esp + 0x578]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x470fd4
lea eax, [esp + 0x578]
mov word [edi], bp
add eax, 0xffffffff
jmp 0x470ff0
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x470ff0
mov ecx, dword [str.2352]
mov dl, byte [0x49f0f0]
lea edi, [esp + 0x578]
mov dword [eax], ecx
mov byte [eax + 4], dl
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x471015
mov ebx, 1
jmp 0x4712b1
mov edi, str.MODE1_2352
lea esi, [esp + 0x244]
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x471174
lea eax, [esp + 0x140]
mov edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x471050
lea edi, [esp + 0x578]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x471065
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x578]
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x471090
mov bp, word [0x4a2210]
lea eax, [esp + 0x44c]
mov word [edi], bp
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4710b0
lea edi, [esp + 0x578]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x4710c7
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x578]
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4710f0
mov word [edi], bp
lea edi, [esp + 0x578]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x471107
mov cx, word [0x4a21fc]
mov word [edi], cx
lea edi, [esp + 0x578]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x471125
lea eax, [esp + 0x578]
mov word [edi], bp
add eax, 0xffffffff
lea esp, [esp]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x471140
mov edx, dword [str.2352]
mov cl, byte [0x49f0f0]
lea edi, [esp + 0x578]
mov dword [eax], edx
mov byte [eax + 4], cl
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x471165
jmp 0x4712af
mov edi, str.MODE2_2352
lea esi, [esp + 0x244]
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x471863
lea eax, [esp + 0x140]
mov edx, eax
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x471198
lea edi, [esp + 0x578]
sub eax, edx
add edi, 0xffffffff
lea ecx, [ecx]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x4711b0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x578]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4711d4
mov bp, word [0x4a2210]
lea eax, [esp + 0x44c]
mov word [edi], bp
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4711f1
lea edi, [esp + 0x578]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x471208
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x578]
add edi, 0xffffffff
lea ebx, [ebx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x471230
mov word [edi], bp
lea edi, [esp + 0x578]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x471247
mov ax, word [0x4a21ec]
mov word [edi], ax
lea edi, [esp + 0x578]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x471264
lea eax, [esp + 0x578]
mov word [edi], bp
add eax, 0xffffffff
jmp 0x471280
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x471280
mov ecx, dword [str.2352]
mov dl, byte [0x49f0f0]
lea edi, [esp + 0x578]
mov dword [eax], ecx
mov byte [eax + 4], dl
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4712a5
xor ebx, ebx
push 0x104
lea eax, [esp + 0x40]
push 0
push eax
mov word [edi], bp
call fcn.00481440
push 0x104
lea ecx, [esp + 0x150]
push 0
push ecx
call fcn.00481440
push 0x104
lea edx, [esp + 0x260]
push 0
push edx
call fcn.00481440
lea eax, [esp + 0x268]
push eax
lea ecx, [esp + 0x168]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x4c]
push eax
call fcn.0046e420
add esp, 0x34
test eax, eax
jne 0x471863
cmp byte [esp + 0x3c], al
je 0x471863
test ebx, ebx
lea esi, [esp + 0x3c]
je 0x4714bc
mov edi, str.PREGAP
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x471468
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x14c]
push str._d:_d:_d
push eax
call fcn.0048108c
add esp, 0x14
cmp eax, 3
jne 0x471863
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [edx + ecx*4]
imul eax, eax, 0x4b
add eax, dword [esp + 0x14]
lea ecx, [esp + 0x348]
push eax
push 0x49e59c
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + 0x354]
add esp, 0xc
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4713a7
lea edi, [esp + 0x578]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov edi, edi
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x4713c0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x578]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4713e2
mov dx, word [0x4a2210]
push 0x104
lea eax, [esp + 0x40]
push 0
push eax
mov word [edi], dx
call fcn.00481440
push 0x104
lea ecx, [esp + 0x150]
push 0
push ecx
call fcn.00481440
push 0x104
lea edx, [esp + 0x260]
push 0
push edx
call fcn.00481440
lea eax, [esp + 0x268]
push eax
lea ecx, [esp + 0x168]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x4c]
push eax
call fcn.0046e420
add esp, 0x34
test eax, eax
jne 0x471863
cmp byte [esp + 0x3c], al
je 0x471863
jmp 0x471514
mov edi, str.INDEX
lea esi, [esp + 0x3c]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x471863
lea edi, [esp + 0x578]
add edi, 0xffffffff
lea ebx, [ebx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x471490
mov ax, word [0x49e5b4]
mov word [edi], ax
lea edi, [esp + 0x578]
add edi, 0xffffffff
lea ecx, [ecx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4714b0
jmp 0x47150a
mov edi, str.INDEX
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x471863
lea edi, [esp + 0x578]
add edi, 0xffffffff
lea ebx, [ebx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4714e0
mov eax, dword [0x49e5b8]
mov dword [edi], eax
lea edi, [esp + 0x578]
add edi, 0xffffffff
jmp 0x471500
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x471500
mov cx, word [0x4a2210]
mov word [edi], cx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x250]
push str._d:_d:_d
push edx
call fcn.0048108c
add esp, 0x14
cmp eax, 3
jne 0x471863
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [edx + ecx*4]
imul eax, eax, 0x4b
add eax, dword [esp + 0x14]
lea ecx, [esp + 0x348]
push eax
push 0x49e59c
push ecx
call ebp
lea eax, [esp + 0x354]
add esp, 0xc
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x471580
lea edi, [esp + 0x578]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x471597
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x578]
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4715c0
mov dx, word [0x4a2210]
lea eax, [esp + 0x578]
mov word [edi], dx
add eax, 0xffffffff
mov edi, edi
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x4715e0
mov ecx, dword [str.00000000]
mov edx, dword [0x4a21d8]
mov esi, dword [esp + 0x20]
test esi, esi
mov dword [eax], ecx
mov cl, byte [0x4a21dc]
mov dword [eax + 4], edx
mov byte [eax + 8], cl
jne 0x471620
lea edx, [esp + 0x578]
push 0x7c
push edx
call fcn.004818d0
add esp, 8
jmp 0x471672
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [edx + ecx*4]
imul eax, eax, 0x4b
sub eax, dword [esp + 0x2c]
lea ecx, [esp + 0x348]
add eax, dword [esp + 0x14]
push eax
push str._08d
push ecx
call ebp
mov edx, dword [esp + 0x354]
mov dword [esi], edx
mov eax, dword [esp + 0x358]
lea ecx, [esp + 0x584]
push 0x7c
push ecx
mov dword [esi + 4], eax
call fcn.004818d0
add esp, 0x14
add eax, 1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov edx, eax
shl edx, 4
sub edx, eax
mov eax, dword [esp + 0x10]
lea eax, [eax + edx*4]
imul eax, eax, 0x4b
add eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x578]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x4716a0
mov cx, word [0x4a1894]
mov dl, byte [0x4a1896]
mov word [eax], cx
mov byte [eax + 2], dl
push 0x104
lea eax, [esp + 0x40]
push 0
push eax
call fcn.00481440
push 0x104
lea ecx, [esp + 0x150]
push 0
push ecx
call fcn.00481440
push 0x104
lea edx, [esp + 0x260]
push 0
push edx
call fcn.00481440
lea eax, [esp + 0x268]
push eax
lea ecx, [esp + 0x168]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x4c]
push eax
call fcn.0046e420
add esp, 0x34
test eax, eax
je 0x470e90
jmp 0x471863
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x2c]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push ecx
lea edx, [esp + 0x34c]
push str._08d
push edx
call edi
mov ecx, dword [esp + 0x354]
mov eax, dword [esp + 0x2c]
mov dword [eax], ecx
mov edx, dword [esp + 0x358]
mov dword [eax + 4], edx
mov eax, dword [esp + 0x3c]
add esp, 0xc
test eax, eax
mov ebp, 1
mov ecx, str.Track
je 0x471774
mov ecx, str.Tracks
mov esi, dword [esp + 0x28]
push 0x49e5ac
push ecx
push eax
push 0x49e5ac
push str.CUE_BIN_Image
push str._s_s_d__s_s
push esi
call edi
mov eax, esi
add esp, 0x1c
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4717a0
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x24]
shl eax, 0xb
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
push eax
add ecx, esi
push ecx
call fcn.0046ef50
add esp, 8
test ebx, ebx
je 0x471813
mov edi, esi
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, ebp
test al, al
jne 0x4717d5
mov ax, word [0x49e870]
mov word [edi], ax
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4717f0
mov ecx, dword [esp + 0x4bdc]
sub eax, edx
mov edx, dword [esp + 0x24]
push ecx
push edx
add eax, esi
push eax
call fcn.0046ee70
add esp, 0xc
lea eax, [esp + 0x578]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x471820
sub eax, edx
mov edi, esi
mov edx, eax
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x471834
add edx, 2
push edx
sub eax, esi
lea ecx, [esp + 0x57c]
push ecx
lea edx, [eax + edi + 1]
push edx
call fcn.00482d20
add esp, 0xc
mov eax, ebp
jmp 0x471884
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xba
call fcn.0046d6b0
mov edx, dword [esp + 0x2c]
add esp, 4
mov cl, byte [eax]
mov byte [edx], cl
add eax, 1
add edx, 1
test cl, cl
jne 0x471874
xor eax, eax
mov ecx, dword [esp + 0x4bcc]
pop esi
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.004810ab
add esp, 0x4bc0
ret