Function at 0x410d9c
Capabilities:
Copy file
Extract resource via kernel32 functions
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x17
push 0
push 0
dec ecx
jne 0x410da4
push ebx
push esi
push edi
lea eax, [ebp - 0x2d]
mov edx, dword [0x405ac0]
call fcn.00403428
xor eax, eax
push ebp
push 0x411eeb
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x415178]
mov byte [eax], 0
push 0
push 0xc
mov eax, dword [0x415198]
mov eax, dword [eax]
push eax
call sub.user32.dll_GetDlgItem
push eax
call sub.user32.dll_EnableWindow
mov eax, dword [0x41518c]
cmp byte [eax], 0
jne 0x410e0b
push 0
push 0
push 0x184
push 0x12
mov eax, dword [0x415198]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendDlgItemMessageA
mov cl, 1
mov dl, 1
or eax, 0xffffffff
call fcn.004103dc
mov byte [ebp - 0x15], al
push 0xa
push 0x411efc
mov eax, dword [0x416674]
push eax
call sub.kernel32.dll_FindResourceA
mov ebx, eax
test ebx, ebx
jbe 0x410f3d
push ebx
mov eax, dword [0x416674]
push eax
call sub.kernel32.dll_LoadResource
push eax
call sub.kernel32.dll_LockResource
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x2d]
lea eax, [ebp - 0x1c]
mov ecx, 5
call fcn.00401390
push ebx
mov eax, dword [0x416674]
push eax
call sub.kernel32.dll_SizeofResource
mov edx, eax
sub edx, 6
lea eax, [ebp - 0x34]
call fcn.00403148
push ebx
mov eax, dword [0x416674]
push eax
call sub.kernel32.dll_SizeofResource
sub eax, 6
push eax
lea eax, [ebp - 0x34]
call fcn.00403070
mov edx, eax
mov eax, dword [ebp - 0x1c]
add eax, 5
pop ecx
call fcn.00401390
lea eax, [ebp - 0x34]
call fcn.00406bd4
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x411f08
call fcn.0040cca4
call fcn.004066d4
test al, al
je 0x410f2b
mov dl, 1
mov eax, dword [0x40bf94]
call fcn.0040bcb4
mov dword [ebp - 0x20], eax
xor eax, eax
push ebp
push 0x410f10
push dword fs:[eax]
mov dword fs:[eax], esp
mov al, byte [ebp - 0x29]
push eax
mov eax, dword [ebp - 0x34]
call fcn.00402e24
push eax
lea eax, [ebp - 0x34]
call fcn.00403070
mov edx, eax
mov eax, dword [ebp - 0x20]
pop ecx
call fcn.0040c82c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x410f17
mov eax, dword [ebp - 0x20]
call fcn.004025a0
ret
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x411f40
call fcn.0040cca4
mov eax, dword [0x415164]
cmp dword [eax], 0
jbe 0x410fbd
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x411f64
call fcn.0040cca4
call fcn.004066d4
test al, al
je 0x410fab
lea eax, [ebp - 0x38]
call fcn.004061f0
lea eax, [ebp - 0x38]
mov edx, 0x411f7c
call fcn.00402e2c
mov eax, dword [ebp - 0x38]
call fcn.0041096c
test al, al
je 0x410f97
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x411f98
call fcn.0040cca4
jmp 0x410fbd
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x411fb4
call fcn.0040cca4
jmp 0x410fbd
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x411fb4
call fcn.0040cca4
mov eax, dword [0x415194]
cmp byte [eax], 0xff
jne 0x410ffc
mov eax, dword [0x415160]
cmp dword [eax + 4], 0
jbe 0x411e97
call fcn.0040f5fc
mov edx, dword [0x415180]
mov dword [edx], eax
mov cl, byte [ebp - 0x15]
xor cl, 1
mov eax, dword [0x415180]
mov eax, dword [eax]
xor edx, edx
call fcn.004103dc
jmp 0x411e97
lea eax, [ebp - 0x14]
mov edx, 0x411fd8
call fcn.00402c68
mov edi, dword [0x415194]
movsx edi, byte [edi]
dec edi
test edi, edi
jl 0x411e97
inc edi
xor esi, esi
mov eax, dword [0x41518c]
cmp byte [eax], 0
jne 0x41104e
push 0
push 0
push 0xf0
push 0xe
mov eax, dword [0x415198]
mov eax, dword [eax]
push eax
call sub.user32.dll_GetDlgItem
push eax
call sub.user32.dll_SendMessageA
mov edx, dword [0x415170]
mov byte [edx], al
mov eax, dword [0x41518c]
cmp byte [eax], 0
jne 0x411065
call fcn.0040f5fc
mov edx, dword [0x415180]
mov dword [edx], eax
mov eax, dword [0x415160]
cmp dword [eax + 4], 1
jbe 0x411099
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov eax, dword [edx + eax*4 + 5]
cmp eax, 0xffffffff
je 0x411099
mov edx, dword [0x415194]
mov edx, dword [0x415180]
cmp eax, dword [edx]
jne 0x411e8f
mov eax, dword [0x41518c]
cmp byte [eax], 0
jne 0x4110da
push 0
push 0
push 0x18b
push 0x12
mov eax, dword [0x415198]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendDlgItemMessageA
test eax, eax
jle 0x4110da
push 0x411fe0
push 0
push 0x180
push 0x12
mov eax, dword [0x415198]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendDlgItemMessageA
push 0x412010
imul ebx, esi, 0xb
mov eax, dword [0x415194]
mov eax, dword [eax + 1]
mov eax, dword [eax + ebx*4 + 5]
lea edx, [ebp - 0x40]
call fcn.00406370
push dword [ebp - 0x40]
push 0x41201c
lea eax, [ebp - 0x3c]
mov edx, 3
call fcn.00402ee4
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x14]
call fcn.00403100
test eax, eax
jne 0x411164
mov eax, dword [0x415194]
mov eax, dword [eax + 1]
mov eax, dword [eax + ebx*4 + 5]
mov cl, 1
xor edx, edx
call fcn.004103dc
test al, al
je 0x411164
mov eax, dword [0x415194]
mov eax, dword [eax + 1]
mov eax, dword [eax + ebx*4 + 5]
lea edx, [ebp - 0x44]
call fcn.00406370
mov edx, dword [ebp - 0x44]
lea eax, [ebp - 0x14]
call fcn.00402e2c
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x412028
call fcn.0040cca4
mov eax, dword [0x415194]
mov eax, dword [eax + 1]
cmp byte [eax + ebx*4 + 0xa], 0
je 0x411197
call fcn.0040b3f0
test al, al
je 0x411197
call fcn.0040b4c8
test al, al
je 0x411197
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x412058
call fcn.0040cca4
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [0x415194]
mov edx, dword [edx + 0x11]
movsx eax, byte [edx + eax]
cmp esi, eax
jne 0x411328
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [0x415194]
mov edx, dword [edx + 0x11]
cmp dword [edx + eax + 1], 0
je 0x41125d
lea eax, [ebp - 0x10]
call fcn.00402bd0
mov eax, esi
shl eax, 4
add eax, esi
mov edx, dword [0x415194]
mov edx, dword [edx + 0x11]
mov eax, dword [edx + eax + 1]
lea edx, [ebp - 0x10]
call fcn.0040fc38
lea edx, [ebp - 0x48]
mov eax, dword [ebp - 0x10]
call fcn.00405dd0
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 0x10]
call fcn.00402c68
push dword [ebp - 0x10]
push 0x412088
mov eax, dword [0x415194]
mov eax, dword [eax + 1]
push dword [eax + ebx*4 + 1]
lea eax, [ebp - 0x4c]
mov edx, 3
call fcn.00402ee4
mov eax, dword [ebp - 0x4c]
call fcn.00406590
test al, al
je 0x41125d
push dword [ebp - 0x10]
push 0x412088
mov eax, dword [0x415194]
mov eax, dword [eax + 1]
push dword [eax + ebx*4 + 1]
mov eax, dword [0x41516c]
mov edx, 3
call fcn.00402ee4
jmp 0x4114d3
mov ebx, esi
shl ebx, 4
add ebx, esi
mov eax, dword [0x415194]
mov eax, dword [eax + 0x11]
cmp dword [eax + ebx + 9], 0
je 0x411328
mov eax, dword [0x415194]
mov eax, dword [eax + 0x11]
cmp dword [eax + ebx + 0xd], 0
je 0x411328
push 0
lea eax, [ebp - 0x50]
push eax
mov eax, dword [0x415194]
mov eax, dword [eax + 0x11]
mov ecx, dword [eax + ebx + 0xd]
mov eax, dword [0x415194]
mov eax, dword [eax + 0x11]
mov eax, dword [eax + ebx + 9]
push eax
mov eax, dword [0x415194]
mov eax, dword [eax + 0x11]
mov eax, dword [eax + ebx + 5]
pop edx
call fcn.0040627c
mov edx, dword [ebp - 0x50]
mov eax, dword [0x41516c]
call fcn.00402c24
lea edx, [ebp - 0x54]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.004064e4
lea eax, [ebp - 0x54]
imul ebx, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + ebx*4 + 1]
call fcn.00402e2c
mov eax, dword [ebp - 0x54]
call fcn.00406590
test al, al
je 0x411328
lea edx, [ebp - 0x58]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.004064e4
mov edx, dword [ebp - 0x58]
mov eax, dword [0x415194]
mov eax, dword [eax + 1]
mov ecx, dword [eax + ebx*4 + 1]
mov eax, dword [0x41516c]
call fcn.00402e70
jmp 0x4114d3
lea edx, [ebp - 0x60]
xor eax, eax
call fcn.0040153c
mov eax, dword [ebp - 0x60]
lea edx, [ebp - 0x5c]
call fcn.004064e4
lea eax, [ebp - 0x5c]
imul ebx, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + ebx*4 + 1]
call fcn.00402e2c
mov eax, dword [ebp - 0x5c]
call fcn.00406590
test al, al
je 0x411394
lea edx, [ebp - 0x68]
xor eax, eax
call fcn.0040153c
mov eax, dword [ebp - 0x68]
lea edx, [ebp - 0x64]
call fcn.004064e4
mov edx, dword [ebp - 0x64]
mov eax, dword [0x415194]
mov eax, dword [eax + 1]
mov ecx, dword [eax + ebx*4 + 1]
mov eax, dword [0x41516c]
call fcn.00402e70
jmp 0x4114d3
mov eax, dword [0x41518c]
cmp byte [eax], 0
jne 0x4114ac
push 0x34
push 0x41208c
push 0x412094
mov eax, dword [0x415198]
mov eax, dword [eax]
push eax
call sub.user32.dll_MessageBoxA
cmp eax, 6
jne 0x41147e
lea eax, [ebp - 8]
mov edx, 0x4120d4
call fcn.00402c68
lea eax, [ebp - 4]
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + ebx*4 + 1]
call fcn.00402c68
mov eax, dword [ebp - 4]
mov edx, 0x412108
call fcn.00402f68
jne 0x4113ff
lea eax, [ebp - 4]
call fcn.00402bd0
jmp 0x41141f
push dword [ebp - 4]
push 0x41211c
push dword [ebp - 4]
push 0x41211c
push dword [ebp - 8]
lea eax, [ebp - 8]
mov edx, 5
call fcn.00402ee4
lea edx, [ebp - 0x70]
xor eax, eax
call fcn.0040153c
mov eax, dword [ebp - 0x70]
lea edx, [ebp - 0x6c]
call fcn.004064e4
mov eax, dword [ebp - 0x6c]
push eax
push 0x412128
lea eax, [ebp - 4]
push eax
push 1
mov eax, dword [0x415198]
mov eax, dword [eax]
mov ecx, dword [ebp - 8]
xor edx, edx
call fcn.0040983c
test al, al
je 0x411467
mov eax, dword [0x41516c]
mov edx, dword [ebp - 4]
call fcn.00402c24
jmp 0x4114d3
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x412140
call fcn.0040cca4
jmp 0x411e5c
mov eax, dword [0x415194]
mov eax, dword [eax + 1]
mov ecx, dword [eax + ebx*4 + 1]
lea eax, [ebp - 0x74]
mov edx, 0x412164
call fcn.00402e70
mov eax, dword [ebp - 0x74]
mov edx, dword [0x41518c]
mov dl, byte [edx]
call fcn.0040cca4
jmp 0x411e5c
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.00406590
test al, al
jne 0x4114d3
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x412188
call fcn.0040cca4
jmp 0x411e5c
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0xb], 0
je 0x411535
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040301c
push eax
call sub.kernel32.dll_GetFileAttributesA
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
or eax, 1
cmp eax, dword [ebp - 0x24]
jne 0x411535
mov eax, dword [ebp - 0x24]
and eax, 0xfffffffe
push eax
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040301c
push eax
call sub.kernel32.dll_SetFileAttributesA
test eax, eax
je 0x411535
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x4121b0
call fcn.0040cca4
mov bl, 1
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040d700
test al, al
je 0x4116fa
lea edx, [ebp - 0xc]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040ceb0
test al, al
je 0x411677
push 0x14
lea edx, [ebp - 0x7c]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.00406690
push dword [ebp - 0x7c]
push 0x4121dc
push 0x4121f4
push 0x412200
push 0x41220c
lea eax, [ebp - 0x78]
mov edx, 5
call fcn.00402ee4
mov eax, dword [ebp - 0x78]
call fcn.0040301c
mov edx, eax
mov ecx, 0x41222c
mov eax, dword [0x415198]
mov eax, dword [eax]
call fcn.0040cce4
cmp eax, 6
jne 0x411de5
mov eax, dword [ebp - 0xc]
call fcn.0040d098
test al, al
je 0x41163d
mov bl, 1
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + eax*4 + 1]
lea eax, [ebp - 0x80]
mov ecx, 0x41223c
call fcn.00402e70
mov eax, dword [ebp - 0x80]
call fcn.0040301c
push eax
push 0
push 0x180
push 0x12
mov eax, dword [0x415198]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendDlgItemMessageA
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + eax*4 + 1]
lea eax, [ebp - 0x84]
mov ecx, 0x41223c
call fcn.00402e70
mov eax, dword [ebp - 0x84]
mov edx, dword [0x41518c]
mov dl, byte [edx]
call fcn.0040cca4
jmp 0x4116fa
xor ebx, ebx
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + eax*4 + 1]
lea eax, [ebp - 0x88]
mov ecx, 0x41225c
call fcn.00402e70
mov eax, dword [ebp - 0x88]
mov edx, dword [0x41518c]
mov dl, byte [edx]
call fcn.0040cca4
jmp 0x4116fa
call fcn.004066d4
test al, al
je 0x4116d8
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0xc], 0
je 0x4116c1
push 0x34
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040301c
mov ecx, eax
mov edx, 0x412278
mov eax, dword [0x415198]
mov eax, dword [eax]
call fcn.0040cce4
cmp eax, 6
jne 0x411de5
xor ebx, ebx
jmp 0x4116fa
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x4122c0
call fcn.0040cca4
jmp 0x411de5
push 0x30
mov ecx, 0x41222c
mov edx, 0x4122e0
mov eax, dword [0x415198]
mov eax, dword [eax]
call fcn.0040cce4
dec eax
jne 0x4116fa
push 0
call sub.kernel32.dll_ExitProcess_1
test bl, bl
je 0x411535
mov ebx, esi
shl ebx, 5
sub ebx, esi
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
movsx eax, byte [eax + ebx]
cmp esi, eax
jne 0x4119d7
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
cmp dword [eax + ebx + 1], 0
jbe 0x411788
mov eax, esi
shl eax, 5
sub eax, esi
mov edx, dword [0x415194]
mov edx, dword [edx + 0xd]
mov edx, dword [edx + eax + 1]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040d1ec
test al, al
jne 0x411788
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + eax*4 + 1]
lea eax, [ebp - 0x8c]
mov ecx, 0x412334
call fcn.00402e70
mov eax, dword [ebp - 0x8c]
mov edx, dword [0x41518c]
mov dl, byte [edx]
call fcn.0040cca4
jmp 0x411de5
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
cmp dword [eax + ebx + 5], 0
jbe 0x4117f3
mov eax, esi
shl eax, 5
sub eax, esi
mov edx, dword [0x415194]
mov edx, dword [edx + 0xd]
mov edx, dword [edx + eax + 5]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040d178
test al, al
jne 0x4117f3
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + eax*4 + 1]
lea eax, [ebp - 0x90]
mov ecx, 0x412350
call fcn.00402e70
mov eax, dword [ebp - 0x90]
mov edx, dword [0x41518c]
mov dl, byte [edx]
call fcn.0040cca4
jmp 0x411de5
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
cmp dword [eax + ebx + 9], 0
je 0x41186c
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
mov eax, dword [eax + ebx + 9]
call fcn.00402e24
cmp eax, 0x20
jne 0x41186c
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
mov edx, dword [eax + ebx + 9]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040d214
test al, al
jne 0x41186c
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + eax*4 + 1]
lea eax, [ebp - 0x94]
mov ecx, 0x41236c
call fcn.00402e70
mov eax, dword [ebp - 0x94]
mov edx, dword [0x41518c]
mov dl, byte [edx]
call fcn.0040cca4
jmp 0x411de5
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
cmp dword [eax + ebx + 0xd], 0
je 0x4118cf
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
mov edx, dword [eax + ebx + 0xd]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040e44c
test al, al
jne 0x4118cf
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + eax*4 + 1]
lea eax, [ebp - 0x98]
mov ecx, 0x412388
call fcn.00402e70
mov eax, dword [ebp - 0x98]
mov edx, dword [0x41518c]
mov dl, byte [edx]
call fcn.0040cca4
jmp 0x411de5
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
cmp byte [eax + ebx + 0x11], 0
je 0x41196c
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
push dword [eax + ebx + 0x16]
push dword [eax + ebx + 0x12]
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
mov al, byte [eax + ebx + 0x1c]
push eax
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
mov al, byte [eax + ebx + 0x1d]
push eax
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
mov cl, byte [eax + ebx + 0x1b]
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
mov dl, byte [eax + ebx + 0x1a]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040d334
test al, al
jne 0x41196c
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + eax*4 + 1]
lea eax, [ebp - 0x9c]
mov ecx, 0x4123a8
call fcn.00402e70
mov eax, dword [ebp - 0x9c]
mov edx, dword [0x41518c]
mov dl, byte [edx]
call fcn.0040cca4
jmp 0x411de5
mov eax, dword [0x415194]
mov eax, dword [eax + 0xd]
cmp byte [eax + ebx + 0x1e], 0
jbe 0x4119d7
mov eax, esi
shl eax, 5
sub eax, esi
mov edx, dword [0x415194]
mov edx, dword [edx + 0xd]
mov dl, byte [edx + eax + 0x1e]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040d6d4
test al, al
jne 0x4119d7
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov edx, dword [edx + eax*4 + 1]
lea eax, [ebp - 0xa0]
mov ecx, 0x4123c8
call fcn.00402e70
mov eax, dword [ebp - 0xa0]
mov edx, dword [0x41518c]
mov dl, byte [edx]
call fcn.0040cca4
jmp 0x411de5
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0xf], 0
je 0x411a15
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040d700
test al, al
jne 0x4119ea
push 0x428f24
mov ecx, 0x428f2c
mov edx, 0x428f1c
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040a5b8
imul ebx, esi, 0x13
mov eax, dword [0x415194]
mov eax, dword [eax + 5]
movsx eax, byte [eax + ebx]
cmp esi, eax
jne 0x411b08
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x4123f0
call fcn.0040cca4
lea edx, [ebp - 0xa8]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.00406690
mov ecx, dword [ebp - 0xa8]
lea eax, [ebp - 0xa4]
mov edx, 0x412408
call fcn.00402e70
mov eax, dword [ebp - 0xa4]
mov edx, dword [0x41518c]
mov dl, byte [edx]
call fcn.0040cca4
mov eax, dword [0x415194]
mov eax, dword [eax + 5]
lea ecx, [eax + ebx]
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov dl, byte [edx + eax*4 + 9]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0041006c
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov al, byte [edx + eax*4 + 0xd]
push eax
mov eax, dword [0x415194]
mov eax, dword [eax + 5]
lea edx, [eax + ebx]
mov ecx, dword [0x415170]
mov cl, byte [ecx]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040d79c
test al, al
je 0x411af3
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, dword [0x415160]
mov eax, dword [eax + 0x2d]
call fcn.0040cca4
mov eax, dword [0x415178]
mov byte [eax], 1
jmp 0x411b08
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, dword [0x415160]
mov eax, dword [eax + 0x31]
call fcn.0040cca4
mov ebx, esi
shl ebx, 4
add ebx, esi
mov eax, dword [0x415194]
mov eax, dword [eax + 9]
movsx eax, byte [eax + ebx]
cmp esi, eax
jne 0x411bd8
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x412420
call fcn.0040cca4
lea edx, [ebp - 0xb0]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.00406690
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0xac]
mov edx, 0x412408
call fcn.00402e70
mov eax, dword [ebp - 0xac]
mov edx, dword [0x41518c]
mov dl, byte [edx]
call fcn.0040cca4
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov al, byte [edx + eax*4 + 0xd]
push eax
mov eax, dword [0x415194]
mov eax, dword [eax + 9]
lea edx, [eax + ebx]
mov ecx, dword [0x415170]
mov cl, byte [ecx]
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040dfe0
test al, al
je 0x411bc3
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, dword [0x415160]
mov eax, dword [eax + 0x2d]
call fcn.0040cca4
mov eax, dword [0x415178]
mov byte [eax], 1
jmp 0x411bd8
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, dword [0x415160]
mov eax, dword [eax + 0x31]
call fcn.0040cca4
mov edx, dword [0x415178]
cmp byte [edx], 0
jne 0x411c77
mov edx, dword [0x415170]
cmp byte [edx], 0
je 0x411c77
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0x10], 0
jne 0x411c29
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0xe], 0
jne 0x411c29
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0xf], 0
je 0x411c77
push 0
mov edx, dword [0x41516c]
mov edx, dword [edx]
lea eax, [ebp - 0xb4]
mov ecx, 0x412444
call fcn.00402e70
mov eax, dword [ebp - 0xb4]
call fcn.0040301c
push eax
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040301c
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
je 0x411c77
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x412454
call fcn.0040cca4
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0x10], 0
je 0x411cbc
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040d700
test al, al
jne 0x411c8a
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040cbac
test al, al
je 0x411cbc
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x41246c
call fcn.0040cca4
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0xe], 0
je 0x411d03
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040d700
test al, al
jne 0x411ccf
mov eax, dword [0x41516c]
mov eax, dword [eax]
mov dl, 1
call fcn.0040b6fc
test al, al
jne 0x411d03
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x41248c
call fcn.0040cca4
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0xf], 0
je 0x411de5
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040d700
test al, al
jne 0x411d1a
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0x11], 0
je 0x411d5a
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov ecx, dword [edx + eax*4 + 0x14]
mov dword [0x428f1c], ecx
mov ecx, dword [edx + eax*4 + 0x18]
mov dword [0x428f20], ecx
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0x12], 0
je 0x411d87
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov ecx, dword [edx + eax*4 + 0x1c]
mov dword [0x428f24], ecx
mov ecx, dword [edx + eax*4 + 0x20]
mov dword [0x428f28], ecx
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0x13], 0
je 0x411db4
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
mov ecx, dword [edx + eax*4 + 0x24]
mov dword [0x428f2c], ecx
mov ecx, dword [edx + eax*4 + 0x28]
mov dword [0x428f30], ecx
push 0x428f24
mov ecx, 0x428f2c
mov edx, 0x428f1c
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040a600
test al, al
je 0x411de5
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x4124a8
call fcn.0040cca4
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0xb], 0
je 0x411e5c
mov eax, dword [ebp - 0x24]
or eax, 1
cmp eax, dword [ebp - 0x24]
jne 0x411e5c
mov eax, dword [ebp - 0x24]
push eax
mov edx, dword [0x41516c]
mov edx, dword [edx]
lea eax, [ebp - 0xb8]
mov ecx, 0x412444
call fcn.00402e70
mov eax, dword [ebp - 0xb8]
call fcn.0040301c
push eax
call sub.kernel32.dll_SetFileAttributesA
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [0x41516c]
mov eax, dword [eax]
call fcn.0040301c
push eax
call sub.kernel32.dll_SetFileAttributesA
test eax, eax
je 0x411e5c
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x4124c8
call fcn.0040cca4
imul eax, esi, 0xb
mov edx, dword [0x415194]
mov edx, dword [edx + 1]
cmp byte [edx + eax*4 + 0xa], 0
je 0x411e8f
call fcn.0040b524
test al, al
je 0x411e8f
mov edx, dword [0x41518c]
mov dl, byte [edx]
mov eax, 0x4124ec
call fcn.0040cca4
call fcn.0040b4b0
inc esi
dec edi
jne 0x41101e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x411ef2
lea eax, [ebp - 0xb8]
mov edx, 0x22
call fcn.00402bf4
lea eax, [ebp - 0x2d]
mov edx, dword [0x405ac0]
call fcn.004034ec
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00402bf4
lea eax, [ebp - 0xc]
mov edx, dword [0x40ce88]
call fcn.00403cdc
lea eax, [ebp - 8]
mov edx, 2
call fcn.00402bf4
ret