Function at 0x10004990
Capabilities:
Get file attributes
Set file attributes

Disassembly:
sub esp, 0xa7c
push ebx
push ebp
push esi
mov esi, dword [esp + 0xa94]
xor ebx, ebx
push edi
mov edi, dword [esp + 0xa90]
mov dword [esi + 0x3de4], ebx
mov dword [esi + 0x8ea], ebx
mov dword [esi + 0x8ee], ebx
mov dword [esi + 0x8f2], ebx
mov dword [esi + 0x8f6], ebx
mov dword [esi + 0x8e2], ebx
mov ecx, dword [edi + 0x54]
lea eax, [esi + 0xaf6e]
push ecx
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], 0xfffffffd
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi + 0x8c2]
lea ebp, [esi + 0xbf7a]
cmp eax, ebx
je 0x10004a1c
push ebx
push 0x18b
call fcn.1000cb20
jmp 0x10004a38
mov edx, dword [esi + 0x4edc]
mov eax, dword [esi + 0x3e04]
push edx
push eax
push ebx
push 0x187
call fcn.1000cb20
add esp, 8
push eax
push ebp
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esi + 0x3e04]
add esp, 0x10
lea ecx, [eax + 1]
push eax
mov dword [esi + 0x3e04], ecx
mov edx, dword [esi + 0x4edc]
push edx
push ebp
call fcn.10002ed0
add esp, 0xc
test eax, eax
je 0x10004a77
pop edi
pop esi
pop ebp
mov eax, 9
pop ebx
add esp, 0xa7c
ret
mov eax, dword [edi + 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [edi + 0x54]
mov dword [edi + 0x20], eax
xor edx, edx
push esi
cmp byte [eax + ecx - 1], 0x2f
mov word [edi + 0x34], 0xffff
mov eax, dword [esi + 0x8c2]
sete dl
cmp eax, ebx
mov dword [esp + 0x24], edx
je 0x10004aca
lea eax, [esp + 0x18]
lea ecx, [esp + 0x20]
push eax
push ecx
push ebx
call fcn.1000d610
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov dword [edi + 8], eax
mov dword [esp + 0x20], ebx
jmp 0x10004b3c
mov ecx, dword [edi + 0x44]
lea edx, [esp + 0x18]
lea eax, [esp + 0x20]
push edx
push eax
push ecx
call fcn.1000d610
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
add esp, 0x10
cmp eax, ebx
je 0x10004bb5
cmp edx, 0xffffffff
jl 0x10004bb5
jg 0x10004b04
cmp ecx, 0xfffffffe
jb 0x10004bb5
mov dword [edi + 8], eax
cmp dword [esi + 0x90a], ebx
je 0x10004b21
cmp dword [esi + 0x90e], ebx
je 0x10004b21
mov eax, dword [esp + 0x1c]
and al, 0xdf
mov dword [esp + 0x1c], eax
cmp dword [esi + 0x4eb0], ebx
jne 0x10004b3c
cmp edx, ebx
jl 0x10004b3c
jg 0x100054bc
cmp ecx, 0xffffffff
jae 0x100054bc
mov ax, word [esi + 0x4ee0]
test ah, 0x80
je 0x10004b70
test ah, 0x10
je 0x10004b70
cmp dword [esi + 0x926], ebx
je 0x10004b70
cmp dword [esi + 0x4fa8], ebx
je 0x10004b70
mov eax, dword [esi + 0x4fac]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x4fb0]
mov dword [esp + 0x1c], eax
cmp ecx, 0xfffffffe
jne 0x10004b8a
cmp edx, 0xffffffff
jne 0x10004b8a
mov dword [esp + 0x20], 1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov eax, dword [esi + 0x4e70]
mov dword [esi + 0x2e], 0xffffffff
cmp eax, ebx
mov dword [esi + 0x62], ebx
je 0x10004bd3
mov ecx, dword [edi + 0x44]
push eax
push ecx
call fcn.100048b0
add esp, 8
test eax, eax
je 0x10004bd3
mov dword [esp + 0x10], ebx
jmp 0x10004bdd
cmp ecx, 0xfffffffd
jne 0x10004bc3
cmp edx, 0xffffffff
je 0x10004b07
pop edi
pop esi
pop ebp
mov eax, 0x12
pop ebx
add esp, 0xa7c
ret
mov edx, dword [esi + 0x4e48]
mov dword [esp + 0x10], edx
push edi
call fcn.1000d8b0
mov eax, dword [esp + 0x24]
add esp, 4
cmp eax, ebx
je 0x10004c07
xor ecx, ecx
xor ebp, ebp
mov dword [esi + 0x2a], 0xffffffff
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebx
jmp 0x10004c1e
cmp dword [esi + 0x8c2], ebx
je 0x10004c3a
mov dword [esi + 0x2a], 0xffffffff
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp dword [esi + 0x8c2], ebx
je 0x10004c7d
mov edx, dword [esi + 0x8c6]
mov eax, dword [esi + 0x8ca]
mov dword [esi + 0x3a], edx
mov dword [esi + 0x3e], eax
jmp 0x10004c97
mov eax, dword [edi + 0x44]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebp
call fcn.10006500
add esp, 4
push ebx
push 0x8000080
push 3
push ebx
push 3
push closesocket
push ebp
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esi + 0x2a], eax
jne 0x10004c16
pop edi
pop esi
pop ebp
mov eax, 0x12
pop ebx
add esp, 0xa7c
ret
mov ecx, dword [esi + 0x2a]
push ecx
call fcn.1000de60
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x3a], eax
add esp, 4
mov dword [esi + 0x3e], edx
mov eax, dword [esp + 0x18]
mov edx, ebp
or edx, eax
jne 0x10004ca5
xor ecx, ecx
jmp 0x10004caf
cmp ecx, 0xffffffff
jne 0x10004cb3
mov ecx, 8
mov dword [esp + 0x10], ecx
cmp dword [esi + 0x91e], ebx
je 0x10004cc8
mov word [edi], 0x2d
mov word [edi + 2], 0x2d
jmp 0x10004cff
cmp dword [esi + 0x4e4c], ebx
je 0x10004cd7
mov eax, 0x14
jmp 0x10004ce2
xor eax, eax
cmp ecx, 9
sete al
add eax, 0x14
cmp ecx, ebx
mov word [edi], ax
jne 0x10004cf0
mov eax, 0xa
jmp 0x10004cfb
xor eax, eax
cmp ecx, 9
sete al
add eax, 0x14
mov word [edi + 2], ax
cmp dword [esi + 0x91e], ebx
je 0x10004d0d
mov word [edi + 4], bx
jmp 0x10004d13
mov word [edi + 4], 8
mov edx, dword [esp + 0x20]
cmp edx, ebx
je 0x10004d20
mov dword [edi + 0xc], ebx
jmp 0x10004d29
mov eax, dword [edi + 8]
shl eax, 0x10
mov dword [edi + 0xc], eax
cmp dword [esi + 0x4e74], ebx
je 0x10004d98
or byte [edi + 4], 1
mov ax, word [edi + 4]
test byte [esi + 0x4ee1], 0x80
jne 0x10004d72
cmp dword [esi + 0x8be], ebx
jne 0x10004d72
cmp edx, ebx
jne 0x10004d6a
mov ecx, dword [esi + 0x2a]
push esi
push ecx
call fcn.100062e0
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
add esp, 8
mov dword [edi + 0xc], eax
and word [edi + 4], 0xfff7
jmp 0x10004d98
cmp edx, ebx
jne 0x10004d83
mov edx, dword [edi + 8]
shl edx, 0x10
mov dword [edi + 0xc], edx
mov edx, dword [esp + 0x20]
cmp dword [esi + 0x91e], ebx
je 0x10004d92
and eax, 0xfff7
jmp 0x10004d94
or al, 8
mov word [edi + 4], ax
mov ax, word [edi + 4]
cmp ecx, ebx
mov word [edi + 0x36], ax
mov word [edi + 6], cx
jne 0x10004db8
cmp dword [esp + 0x18], ebx
jl 0x10004db8
jg 0x10004db4
cmp ebp, ebx
jb 0x10004db8
mov eax, ebp
jmp 0x10004dba
xor eax, eax
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov dword [edi + 0x14], ebx
jl 0x10004dd2
jg 0x10004dce
cmp ebp, ebx
jb 0x10004dd2
mov eax, ebp
jmp 0x10004dd4
xor eax, eax
cmp word [edi + 0x34], 0xffff
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ebx
mov dword [edi + 0x30], ebx
jne 0x10004df1
mov word [edi + 0x34], bx
mov dword [esp + 0x28], 1
mov eax, dword [esi + 0x4e4c]
cmp eax, ebx
mov eax, dword [esp + 0x1c]
je 0x10004e04
and eax, 0xff
mov dword [edi + 0x38], eax
mov eax, dword [esi + 0x4ea8]
mov dword [edi + 0x3c], eax
mov eax, dword [esi + 0x4eac]
mov dword [edi + 0x40], eax
mov dword [esi + 0x32], ebx
test byte [esi + 0x4ee1], 0x80
mov dword [esi + 0xb76e], ebx
mov dword [esi + 0x36], ebx
je 0x10004e59
mov eax, dword [esi + 0x4ee2]
mov dword [edi + 0x30], eax
mov eax, dword [esi + 0x4e74]
cmp eax, ebx
jne 0x10004e59
cmp edx, ebx
jne 0x10004e59
cmp ecx, ebx
jne 0x10004e59
mov ecx, dword [esi + 0x2a]
push esi
push ecx
call fcn.100062e0
add esp, 8
mov dword [edi + 0xc], eax
cmp dword [esi + 0x926], ebx
je 0x10004f57
test byte [esi + 0x4ee1], 0x10
jne 0x10004f57
mov edx, dword [edi + 0x54]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x38]
push edx
push eax
call ebx
mov ecx, dword [edi + 0x44]
lea edx, [esp + 0x148]
push ecx
push edx
call ebx
mov eax, dword [edi + 8]
mov edx, dword [esi + 0x92a]
mov ebx, dword [edi + 0x38]
xor ecx, ecx
mov cx, word [edi + 8]
push edx
shr eax, 0x10
mov dword [esp + 0x140], eax
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], ebx
call dword [esi + 0x926]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [esp + 0x38]
push ecx
call ebp
mov edx, eax
mov eax, dword [edi + 0x54]
push eax
mov dword [esp + 0x34], edx
call ebp
mov ecx, dword [esp + 0x30]
cmp ecx, eax
jle 0x10004f0a
mov edx, dword [edi + 0x54]
push edx
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
add esp, 4
lea eax, [esp + 0x38]
push eax
call ebp
add eax, 2
push eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov dword [edi + 0x54], eax
mov edx, dword [edi + 0x54]
lea ecx, [esp + 0x38]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [edi + 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebp, dword [esp + 0x144]
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x13c]
mov dword [edi + 0x20], eax
mov eax, ebx
and ecx, 0xffff
xor eax, ebp
shl edx, 0x10
and eax, 0x27
add ecx, edx
xor eax, ebx
mov dword [edi + 8], ecx
mov dword [edi + 0x38], eax
xor ebx, ebx
mov ebp, dword [esp + 0xa94]
push esi
push ebp
push edi
call fcn.1000fca0
add esp, 0xc
cmp eax, ebx
jne 0x1000561e
mov ecx, dword [edi + 0x5c]
mov edx, dword [edi + 0x24]
add ecx, edx
mov edx, dword [edi + 0x20]
lea eax, [ecx + edx + 0x1e]
mov ecx, dword [esi + 0x4ea8]
add ecx, eax
mov eax, dword [esi + 0x4e74]
mov dword [esi + 0x4ea8], ecx
mov edx, dword [esi + 0x4eac]
adc edx, ebx
cmp eax, ebx
mov dword [esi + 0x4eac], edx
je 0x10005024
mov ecx, dword [edi + 0xc]
push esi
push ebp
push ecx
push eax
call fcn.10011590
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x10004fec
push esi
push 0
push 0x188
call fcn.1000cb20
add esp, 8
push eax
push ebx
call fcn.10007220
mov edx, dword [esi + 0x2a]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa7c
ret
mov ecx, dword [edi + 0x10]
mov eax, 0xc
add ecx, eax
mov dword [edi + 0x10], ecx
mov ebx, dword [edi + 0x14]
mov ecx, 0
adc ebx, ecx
mov dword [edi + 0x14], ebx
mov edx, dword [esi + 0x4ea8]
add edx, eax
mov dword [esi + 0x4ea8], edx
mov eax, dword [esi + 0x4eac]
adc eax, ecx
xor ebx, ebx
mov dword [esi + 0x4eac], eax
mov eax, dword [ebp]
push 1
push ebx
push ebx
push eax
call fcn.1000ddf0
push esi
push ebx
mov dword [esi + 0x32], ebx
push ebx
mov dword [esi + 0x36], ebx
call fcn.10006480
add esp, 0x1c
mov dword [esi + 0xb772], eax
test byte [esi + 0x4ee1], 0x80
je 0x1000505d
mov dword [esi + 0x4efe], ebx
mov dword [esi + 0x4f02], ebx
mov eax, dword [esp + 0x10]
cmp eax, 9
jne 0x100050d9
mov ecx, dword [ebp]
push esi
push ecx
call fcn.10015110
add esp, 8
test eax, eax
jne 0x10005160
cmp dword [esp + 0x28], ebx
je 0x10005087
mov word [edi + 0x34], 0xffff
lea edx, [esp + 0x10]
push esi
lea eax, [edi + 0x34]
push edx
push eax
call fcn.10013ee0
mov eax, dword [esi + 0x4e54]
lea ebx, [edi + 4]
push esi
push ebx
push eax
call fcn.10015330
mov cl, byte [edi + 0x36]
mov dl, byte [ebx]
xor cl, dl
push esi
and ecx, 6
xor word [edi + 0x36], cx
call fcn.10015990
push esi
mov ebx, eax
xor ebp, ebp
call fcn.100151c0
mov eax, dword [esp + 0xab4]
mov edx, dword [esi + 4]
add esp, 0x20
mov dword [eax], edx
jmp 0x10005229
cmp eax, 8
jne 0x1000514d
mov ecx, dword [ebp]
push esi
push ecx
call fcn.10011de0
add esp, 8
test eax, eax
jne 0x10005160
cmp dword [esp + 0x28], ebx
je 0x100050fb
mov word [edi + 0x34], 0xffff
lea edx, [esp + 0x10]
push esi
lea eax, [edi + 0x34]
push edx
push eax
call fcn.10012c20
mov eax, dword [esi + 0x4e54]
lea ebx, [edi + 4]
push esi
push ebx
push eax
call fcn.100122e0
mov cl, byte [edi + 0x36]
mov dl, byte [ebx]
xor cl, dl
push esi
and ecx, 6
xor word [edi + 0x36], cx
call fcn.10012980
push esi
mov ebx, eax
xor ebp, ebp
call fcn.10011e90
mov eax, dword [esp + 0xab4]
mov edx, dword [esi + 4]
add esp, 0x20
mov dword [eax], edx
jmp 0x10005229
push 0x2000
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x10005170
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0xa7c
ret
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x1000521a
mov ecx, dword [esi + 0x3e]
mov edx, dword [esi + 0x3a]
mov eax, dword [esp + 0x2c]
push 0
push 0
push ecx
push edx
push eax
call fcn.10002d50
mov eax, dword [esi + 0x9a]
add esp, 0x14
test eax, eax
jne 0x10005214
mov eax, dword [esi + 0x8c2]
push esi
test eax, eax
push 0x2000
push ebx
je 0x100051c2
call fcn.10005ee0
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x24], eax
cmp ecx, eax
jmp 0x100051d2
call fcn.10005dc0
xor edx, edx
add esp, 0xc
mov dword [esp + 0x24], eax
cmp edx, eax
sbb eax, eax
neg eax
test eax, eax
je 0x1000520a
mov eax, dword [esp + 0xa94]
mov ecx, dword [esp + 0x24]
xor ebp, ebp
push esi
push eax
push ebp
push ecx
push ebx
call fcn.10011830
mov ecx, dword [esp + 0x38]
add esp, 0x14
cmp eax, ecx
jne 0x10005245
cmp edx, ebp
jne 0x10005245
mov eax, dword [esi + 0x9a]
test eax, eax
je 0x1000519f
mov eax, dword [esi + 0x9a]
test eax, eax
je 0x1000521a
mov dword [esi], 9
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov ebx, dword [esi + 0x32]
mov ebp, dword [esi + 0x36]
add esp, 4
cmp dword [esi], 0
mov eax, dword [esi + 0x2a]
je 0x1000528b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa7c
ret
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov edx, dword [esi + 0x2a]
add esp, 4
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test byte [esi + 0x4ee1], 0x80
je 0x1000527b
mov eax, dword [esi + 0x9a]
pop edi
neg eax
sbb eax, eax
pop esi
and al, 0xfb
pop ebp
add eax, 0xe
pop ebx
add esp, 0xa7c
ret
pop edi
pop esi
pop ebp
mov eax, 0xa
pop ebx
add esp, 0xa7c
ret
cmp eax, 0xffffffff
je 0x100052a7
cmp dword [esp + 0x24], 0xffffffff
je 0x100054bc
cmp eax, 0xffffffff
je 0x100052a7
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0x8000
test word [esi + 0x4ee0], cx
je 0x100052d7
mov edx, dword [esi + 0x4efe]
mov eax, dword [esi + 0x4f02]
add dword [esi + 0x4ea8], edx
mov edx, dword [esi + 0x4eac]
adc edx, eax
mov dword [esi + 0x4eac], edx
jmp 0x100052f3
mov edx, dword [esi + 0x4ea8]
add edx, ebx
mov dword [esi + 0x4ea8], edx
mov eax, dword [esi + 0x4eac]
adc eax, ebp
mov dword [esi + 0x4eac], eax
mov edx, dword [esi + 0x4ea8]
mov eax, dword [esi + 0x4eac]
cmp dword [esi + 0x4eb0], 0
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
jne 0x10005346
test eax, eax
jl 0x10005346
jg 0x1000531b
cmp edx, 0xffffffff
jb 0x10005346
push esi
push 0
push 0x10e
call fcn.1000cb20
add esp, 8
push eax
push 0xe
call fcn.10007220
add esp, 0xc
mov eax, 0xe
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa7c
ret
mov edx, dword [esi + 0xb772]
mov dword [edi + 0x10], ebx
mov dword [edi + 0xc], edx
mov dword [edi + 0x14], ebp
mov eax, dword [esi + 0x4e74]
test eax, eax
je 0x1000536b
add ebx, 0xc
adc ebp, 0
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebp
mov eax, dword [esi + 0x8be]
test eax, eax
je 0x100053bf
cmp dword [esi + 0x4e58], 1
jne 0x1000538a
mov eax, dword [esi + 0x32]
cdq
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], edx
jmp 0x100053cb
mov eax, dword [esi + 0x91e]
test eax, eax
mov eax, dword [esi + 0x8ea]
je 0x100053ae
mov edx, dword [esi + 0x8ee]
mov dword [edi + 0x18], eax
and edx, 0x7fffffff
mov dword [edi + 0x1c], edx
jmp 0x100053cb
and eax, 0x7fffffff
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], 0
jmp 0x100053cb
mov edx, dword [esi + 0x32]
mov dword [edi + 0x18], edx
mov eax, dword [esi + 0x36]
mov dword [edi + 0x1c], eax
test word [esi + 0x4ee0], cx
jne 0x100054cc
mov ebx, dword [esp + 0xa94]
mov ecx, dword [edi + 0x40]
mov edx, dword [edi + 0x3c]
push 0
mov eax, dword [ebx]
push ecx
push edx
push eax
call fcn.1000ddf0
and eax, edx
add esp, 0x10
cmp eax, 0xffffffff
je 0x100054a1
mov eax, dword [esi + 0x8be]
mov ebp, dword [edi + 0xc]
test eax, eax
je 0x1000542b
mov eax, dword [esi + 0x91e]
test eax, eax
jne 0x1000542b
mov eax, dword [esi + 0x4e74]
test eax, eax
je 0x10005437
mov ecx, dword [edi + 8]
shl ecx, 0x10
mov dword [edi + 0xc], ecx
jmp 0x10005437
and word [edi + 0x36], 0xfff7
and word [edi + 4], 0xfff7
mov eax, dword [esp + 0x10]
mov word [edi + 6], ax
mov ecx, dword [esi + 0x91e]
test ecx, ecx
je 0x10005451
mov word [edi + 2], 0x2d
jmp 0x1000546d
test eax, eax
jne 0x1000545c
mov eax, 0xa
jmp 0x10005469
xor edx, edx
cmp eax, 9
sete dl
add edx, 0x14
mov eax, edx
mov word [edi + 2], ax
push esi
push ebx
push edi
call fcn.1000fca0
add esp, 0xc
mov dword [edi + 0xc], ebp
test eax, eax
jne 0x1000561e
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [ebx]
push 0
push eax
push ecx
push edx
call fcn.1000ddf0
and eax, edx
add esp, 0x10
cmp eax, 0xffffffff
jne 0x100054d3
push esi
push 0
push 0x189
call fcn.1000cb20
add esp, 8
push eax
push 0xb
call fcn.10007220
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0xa7c
ret
mov ebx, dword [esp + 0xa94]
test byte [esi + 0x4ee1], 0x80
jne 0x100054e6
mov eax, dword [esi + 0x8be]
test eax, eax
je 0x1000552b
mov eax, dword [esp + 0x10]
cmp eax, 8
je 0x100054fa
cmp eax, 9
je 0x100054fa
test byte [edi + 4], 8
je 0x1000552b
push esi
push ebx
push edi
call fcn.100101a0
add esp, 0xc
test eax, eax
jne 0x1000561e
mov ecx, dword [esi + 0x4ea8]
add ecx, 0x10
mov dword [esi + 0x4ea8], ecx
mov eax, dword [esi + 0x4eac]
adc eax, 0
mov dword [esi + 0x4eac], eax
mov eax, dword [edi + 0x24]
test eax, eax
je 0x1000554c
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 0x4c]
cmp eax, ecx
je 0x10005545
push eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
add esp, 4
mov dword [edi + 0x24], 0
mov eax, dword [esi + 0x8c2]
test eax, eax
je 0x10005581
mov eax, dword [esp + 0x2c]
push eax
push 2
push 0x2c1
call fcn.1000cb20
add esp, 8
lea ecx, [esp + 0x250]
push eax
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x1000560c
mov eax, dword [esi + 0x90a]
test eax, eax
je 0x100055da
mov eax, dword [esi + 0x90e]
test eax, eax
je 0x100055da
mov edx, dword [edi + 0x44]
lea eax, [esp + 0x24c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x24c]
push ecx
call fcn.10006500
add esp, 4
lea edx, [esp + 0x24c]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and al, 0xdf
mov dword [esp + 0x1c], eax
push eax
lea eax, [esp + 0x250]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ecx, dword [edi + 0x44]
push ecx
push 2
push 0x2bf
call fcn.1000cb20
add esp, 8
lea edx, [esp + 0x250]
push eax
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + 0x258]
push eax
call fcn.10006500
add esp, 0x10
lea ecx, [esp + 0x24c]
push ecx
call fcn.10004250
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa7c
ret