Function at 0x10003430
Capabilities:
Delete file
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1002a7b1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x24ac
call fcn.10015980
mov eax, dword [0x1003b270]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
push edi
lea edi, [esi + 0x70]
xor eax, ebp
push edi
mov dword [esp + 0x24b8], eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x6c], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor eax, eax
push 0x1002d77c
mov ecx, ebx
mov dword [esp + 0x24c8], eax
mov dword [esp + 0x60], eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
call dword [sym.imp.MSVCR71.dll__wfopen]
add esp, 8
test eax, eax
mov dword [esp + 0x28], eax
jne 0x100034bc
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x10004a00
xor eax, eax
lea ebx, [esi + 0x58]
mov ecx, 0x16
mov edi, esi
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
push ecx
mov ecx, ebx
mov dword [esp + 0x3c], ebx
call fcn.10002100
mov eax, dword [ebx + 4]
mov dword [eax + 4], eax
mov eax, dword [ebx + 4]
xor edi, edi
mov dword [ebx + 8], edi
mov dword [eax], eax
mov eax, dword [ebx + 4]
lea ecx, [esi + 0x64]
mov dword [eax + 8], eax
call fcn.100020c0
lea ecx, [esp + 0xc0]
mov word [esi + 4], di
mov dword [esi + 0x10], edi
call fcn.10010a90
mov edx, dword [esp + 0x28]
push edx
push 0x20
lea eax, [esp + 0xc8]
push 1
push eax
call dword [sym.imp.MSVCR71.dll_fread]
add esp, 0x10
cmp eax, 0x20
jne 0x100049cc
mov ecx, dword [esp + 0x60]
push ecx
lea ecx, [esp + 0xc4]
call fcn.10010ad0
test eax, eax
je 0x100049cc
mov edx, dword [esp + 0x28]
xor eax, eax
mov byte [esp + 0x450], 0
mov ecx, 0x17
lea edi, [esp + 0x451]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push edx
push 0x60
stosb byte es:[edi], al
lea eax, [esp + 0x458]
push 1
push eax
call dword [sym.imp.MSVCR71.dll_fread]
add esp, 0x10
cmp eax, 0x60
jne 0x100049cc
xor eax, eax
mov byte [esp + 0x330], 0
mov ecx, 0x17
lea edi, [esp + 0x331]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x18
lea esi, [esp + 0x450]
lea edi, [esp + 0x390]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x334]
push edx
lea eax, [esp + 0x398]
push 0x60
push eax
mov dword [esp + 0x4c], 0x60
call fcn.10009090
add esp, 0x10
test eax, eax
je 0x100049cc
mov ecx, 0x18
lea esi, [esp + 0x330]
lea edi, [esp + 0x390]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x390]
test edx, edx
mov dword [esp + 0x2c], ecx
je 0x100049cc
lea eax, [esp + 0x330]
test eax, eax
je 0x100049cc
call fcn.10016550
test eax, eax
mov dword [esp + 0x14], eax
je 0x100049cc
xor ecx, ecx
mov dword [esp + 0x17d], ecx
mov dword [esp + 0x181], ecx
mov dword [esp + 0x185], ecx
mov dword [esp + 0x189], ecx
mov dword [esp + 0x18d], ecx
mov dword [esp + 0x191], ecx
lea edx, [esp + 0x17c]
test edx, edx
mov dword [esp + 0x195], ecx
mov byte [esp + 0x17c], 0
mov dword [esp + 0x199], ecx
je 0x1000383d
xor eax, eax
mov dword [esp + 0x1a1], eax
mov dword [esp + 0x1a5], eax
mov byte [esp + 0x1a0], cl
mov dword [esp + 0x1a9], eax
mov dword [esp + 0x165], ecx
mov dword [esp + 0x1ad], eax
mov dword [esp + 0x169], ecx
mov dword [esp + 0x1b1], eax
mov dword [esp + 0x16d], ecx
mov dword [esp + 0x171], ecx
mov dword [esp + 0x1b5], eax
mov dword [esp + 0x1b9], eax
xor edx, edx
mov dword [esp + 0x175], ecx
mov dword [esp + 0x159], edx
lea ecx, [esp + 0x50]
mov dword [esp + 0x1bd], eax
mov byte [esp + 0x164], al
mov byte [esp + 0x158], al
mov dword [esp + 0x15d], edx
call fcn.10025240
push 0
lea eax, [esp + 0x1a4]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x24cc], 1
call fcn.10027630
push 0
lea ecx, [esp + 0x168]
push ecx
lea ecx, [esp + 0x58]
call fcn.100241c0
lea edx, [esp + 0x158]
push edx
lea ecx, [esp + 0x54]
call fcn.10024280
mov edi, 3
lea ecx, [esp + 0x1a2]
xor eax, eax
sub edi, ecx
lea ecx, [ecx]
cmp eax, 0x14
jge 0x10003775
mov dl, byte [esp + eax + 0x164]
add byte [esp + eax + 0x1a0], dl
jmp 0x10003788
cmp eax, 0x1c
jge 0x10003788
mov cl, byte [esp + eax + 0x144]
add byte [esp + eax + 0x1a0], cl
cmp eax, 0x13
jge 0x1000379d
mov dl, byte [esp + eax + 0x165]
add byte [esp + eax + 0x1a1], dl
jmp 0x100037b0
cmp eax, 0x1b
jge 0x100037b0
mov cl, byte [esp + eax + 0x145]
add byte [esp + eax + 0x1a1], cl
cmp eax, 0x12
jge 0x100037c5
mov dl, byte [esp + eax + 0x166]
add byte [esp + eax + 0x1a2], dl
jmp 0x100037d8
cmp eax, 0x1a
jge 0x100037d8
mov cl, byte [esp + eax + 0x146]
add byte [esp + eax + 0x1a2], cl
lea esi, [esp + eax + 0x1a2]
lea ecx, [esi + edi]
cmp ecx, 0x14
jge 0x100037f3
mov dl, byte [esp + eax + 0x167]
add byte [esi + 1], dl
jmp 0x10003802
cmp ecx, 0x1c
jge 0x10003802
mov cl, byte [esp + eax + 0x147]
add byte [esi + 1], cl
add eax, 4
cmp eax, 0x20
jl 0x10003760
lea edx, [esp + 0x17c]
push edx
lea eax, [esp + 0x1a4]
push 0x20
push eax
call fcn.100163a0
add esp, 0xc
lea ecx, [esp + 0x50]
mov byte [esp + 0x24c4], 0
call fcn.100250d0
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
push 0x20
lea ecx, [esp + 0x180]
push ecx
mov ecx, eax
call dword [edx + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x334]
push eax
mov eax, dword [esp + 0x34]
push eax
lea eax, [esp + 0x39c]
push eax
push 1
call dword [edx + 0xc]
lea ecx, [esp + 0x14]
push ecx
mov esi, eax
call fcn.10015ec0
add esp, 4
test esi, esi
je 0x100049cc
mov eax, dword [esp + 0x24]
mov edi, eax
add eax, 0x14
push 0x1002d7f8
mov ecx, 0x16
lea esi, [esp + 0x334]
push eax
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x100049cc
xor esi, esi
mov ecx, ebx
mov dword [esp + 0x34], esi
call fcn.10002390
mov edx, dword [esp + 0x24]
xor eax, eax
cmp word [edx + 4], si
mov byte [esp + 0x3f0], 0
mov ecx, 0x17
lea edi, [esp + 0x3f1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [esp + 0x2c], esi
jbe 0x10004956
mov eax, dword [esp + 0x28]
push eax
push 0x60
lea ecx, [esp + 0x3f8]
push 1
push ecx
xor ebx, ebx
call dword [sym.imp.MSVCR71.dll_fread]
add esp, 0x10
cmp eax, 0x60
jb 0x10004956
xor eax, eax
mov byte [esp + 0x270], bl
mov ecx, 0x17
lea edi, [esp + 0x271]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea edx, [esp + 0x2d0]
test edx, edx
mov ecx, 0x18
lea esi, [esp + 0x3f0]
lea edi, [esp + 0x2d0]
mov dword [esp + 0x18], 0x60
rep movsd dword es:[edi], dword [esi]
je 0x10004956
lea eax, [esp + 0x270]
test eax, eax
je 0x10004956
call fcn.10016550
cmp eax, ebx
mov dword [esp + 0x40], eax
je 0x10004956
xor ecx, ecx
mov dword [esp + 0x205], ecx
mov dword [esp + 0x209], ecx
mov dword [esp + 0x20d], ecx
mov dword [esp + 0x211], ecx
mov dword [esp + 0x215], ecx
mov dword [esp + 0x219], ecx
lea edx, [esp + 0x204]
test edx, edx
mov dword [esp + 0x21d], ecx
mov byte [esp + 0x204], bl
mov dword [esp + 0x221], ecx
je 0x100039e0
push 0x20
mov eax, edx
push str.EA4D2AEC3AED4a8fAAC17DCB23F12C4E
push eax
call dword [sym.imp.MSVCR71.dll_strncpy]
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov edx, dword [eax]
push 0x20
lea ecx, [esp + 0x208]
push ecx
mov ecx, eax
call dword [edx + 4]
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x274]
push eax
push 0x60
lea eax, [esp + 0x2dc]
push eax
push 1
call dword [edx + 0xc]
lea ecx, [esp + 0x40]
push ecx
mov esi, eax
call fcn.10015ec0
add esp, 4
cmp esi, ebx
je 0x10004956
mov edx, dword [esp + 0x18]
mov ecx, 0x18
lea esi, [esp + 0x270]
lea edi, [esp + 0x2d0]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x48], edx
call fcn.10016550
cmp eax, ebx
mov dword [esp + 0x4c], eax
je 0x10004956
xor eax, eax
mov dword [esp + 0x24d], eax
mov dword [esp + 0x251], eax
mov dword [esp + 0x255], eax
mov dword [esp + 0x259], eax
mov dword [esp + 0x25d], eax
mov dword [esp + 0x261], eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x265], eax
push ecx
mov byte [esp + 0x250], 0
mov dword [esp + 0x26d], eax
call fcn.10008fc0
push str.LoginLogin.dat
push eax
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x24d4], 2
call fcn.10001de0
add esp, 0x10
lea ecx, [esp + 0x6c]
mov byte [esp + 0x24c4], 4
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
xor eax, eax
mov byte [esp + 0x14b0], 0
mov ecx, 0x1ff
lea edi, [esp + 0x14b1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x1cb0], 0
mov ecx, 0xff
lea edi, [esp + 0x1cb1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [esp + 0x8b0], 0
xor eax, eax
mov ecx, 0xff
lea edi, [esp + 0x8b1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x1002d77c
lea ecx, [esp + 0x24]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
xor edi, edi
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
call dword [sym.imp.MSVCR71.dll__wfopen]
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x10003b7d
push 2
push ebx
push esi
call dword [sym.imp.MSVCR71.dll_fseek]
push esi
call dword [sym.imp.MSVCR71.dll_ftell]
push ebx
push ebx
push esi
mov edi, eax
call dword [sym.imp.MSVCR71.dll_fseek]
add esp, 0x1c
cmp edi, 0x800
jbe 0x10003b7d
mov ebx, 0x800
mov dword [esp + 0xc], ebx
jmp 0x10003b8b
test edi, edi
mov ebx, edi
mov dword [esp + 0xc], ebx
jle 0x10003d42
test esi, esi
je 0x10003d42
push esi
push ebx
lea eax, [esp + 0x14b8]
push 1
push eax
call dword [sym.imp.MSVCR71.dll_fread]
add esp, 0x10
cmp eax, ebx
push esi
je 0x10003bbb
call dword [sym.imp.MSVCR71.dll_fclose]
add esp, 4
jmp 0x10003d42
call dword [sym.imp.MSVCR71.dll_fclose]
add esp, 4
lea ecx, [esp + 0xa0]
call fcn.10010a90
cmp ebx, 0x20
mov ecx, 0x20
ja 0x10003bdc
mov ecx, ebx
mov edx, ecx
shr ecx, 2
lea esi, [esp + 0x14b0]
lea edi, [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp ebx, 0x20
rep movsb byte es:[edi], byte [esi]
jbe 0x10003c02
mov ebx, 0x20
cmp ebx, dword [esp + 0xc]
jge 0x10003d42
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0xa4]
call fcn.10010ad0
test eax, eax
je 0x10003d42
mov eax, dword [esp + 0xc]
sub eax, ebx
cmp eax, 4
mov ecx, 4
ja 0x10003c37
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea esi, [esp + ebx + 0x14b0]
lea edi, [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, 4
rep movsb byte es:[edi], byte [esi]
jbe 0x10003c5a
mov eax, 4
add ebx, eax
cmp ebx, dword [esp + 0xc]
jge 0x10003d42
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x10003d42
cmp eax, 0x20
jne 0x10003d42
mov eax, dword [esp + 0xc]
sub eax, ebx
cmp eax, 0x20
mov ecx, 0x20
jg 0x10003c8d
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea esi, [esp + ebx + 0x14b0]
lea edi, [esp + 0x1cb0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, 0x20
rep movsb byte es:[edi], byte [esi]
jle 0x10003cb3
mov eax, 0x20
add ebx, eax
cmp ebx, dword [esp + 0xc]
jge 0x10003d42
mov eax, dword [esp + 0xc]
sub eax, ebx
cmp eax, 4
mov ecx, 4
ja 0x10003cd1
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea esi, [esp + ebx + 0x14b0]
lea edi, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, 4
rep movsb byte es:[edi], byte [esi]
jbe 0x10003cf4
mov eax, 4
add ebx, eax
cmp ebx, dword [esp + 0xc]
jge 0x10003d42
mov ecx, dword [esp + 0x10]
test ecx, ecx
jle 0x10003d42
mov eax, dword [esp + 0xc]
sub eax, ebx
cmp ecx, eax
jl 0x10003d10
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea esi, [esp + ebx + 0x14b0]
lea edi, [esp + 0x8b0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jge 0x10003d36
mov eax, ecx
add ebx, eax
cmp ebx, dword [esp + 0xc]
je 0x10003f96
mov esi, dword [sym.imp.ole32.dll_CoCreateGuid]
xor eax, eax
mov ecx, 0x100
lea edi, [esp + 0x1cb0]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x70]
push eax
call esi
test eax, eax
jne 0x10003ddb
movzx ecx, byte [esp + 0x7f]
movzx edx, byte [esp + 0x7e]
movzx eax, byte [esp + 0x7d]
push ecx
movzx ecx, byte [esp + 0x80]
push edx
movzx edx, byte [esp + 0x83]
push eax
movzx eax, byte [esp + 0x86]
push ecx
movzx ecx, byte [esp + 0x89]
push edx
movzx edx, byte [esp + 0x8c]
push eax
movzx eax, word [esp + 0x8e]
push ecx
movzx ecx, word [esp + 0x90]
push edx
mov edx, dword [esp + 0x90]
push eax
push ecx
push edx
push str._08X_04X_04x_02X_02X_02X_02X_02X_02X_02X_02X
lea eax, [esp + 0x1ce0]
push 0x400
push eax
call dword [sym.imp.MSVCR71.dll__snprintf]
add esp, 0x38
mov ebx, eax
jmp 0x10003df8
push 0x20
lea ecx, [esp + 0x1cb4]
push str.A86486387FF44994B1C3D4A68A09B18B
push ecx
call dword [sym.imp.MSVCR71.dll_strncpy]
add esp, 0xc
mov ebx, 0x20
lea edx, [esp + 0x70]
xor eax, eax
mov ecx, 0x100
lea edi, [esp + 0x8b0]
push edx
rep stosd dword es:[edi], eax
call esi
test eax, eax
jne 0x10003e8d
movzx eax, byte [esp + 0x7f]
movzx ecx, byte [esp + 0x7e]
movzx edx, byte [esp + 0x7d]
push eax
movzx eax, byte [esp + 0x80]
push ecx
movzx ecx, byte [esp + 0x83]
push edx
movzx edx, byte [esp + 0x86]
push eax
movzx eax, byte [esp + 0x89]
push ecx
movzx ecx, byte [esp + 0x8c]
push edx
movzx edx, word [esp + 0x8e]
push eax
movzx eax, word [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x90]
push edx
push eax
push ecx
push str._08X_04X_04x_02X_02X_02X_02X_02X_02X_02X_02X
lea edx, [esp + 0x8e0]
push 0x400
push edx
call dword [sym.imp.MSVCR71.dll__snprintf]
add esp, 0x38
mov dword [esp + 0x10], eax
jmp 0x10003ead
push 0x20
lea eax, [esp + 0x8b4]
push str.033EA43D0C95436792206E6FF8E4E343
push eax
call dword [sym.imp.MSVCR71.dll_strncpy]
add esp, 0xc
mov dword [esp + 0x10], 0x20
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor eax, eax
mov ecx, 0x200
lea edi, [esp + 0x14b0]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xe0]
call fcn.10010a90
mov eax, dword [esp + 0x10]
mov ecx, 8
lea esi, [esp + 0xe0]
lea edi, [esp + 0x14b0]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x14d0], ebx
mov ecx, ebx
mov edx, ecx
shr ecx, 2
lea esi, [esp + 0x1cb0]
lea edi, [esp + 0x14d4]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add ebx, 0x24
mov dword [esp + ebx + 0x14b0], eax
mov ecx, eax
mov edx, ecx
shr ecx, 2
add ebx, 4
lea edi, [esp + ebx + 0x14b0]
lea esi, [esp + 0x8b0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x1002d6fc
lea ecx, [esp + 0x24]
add ebx, eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
call dword [sym.imp.MSVCR71.dll__wfopen]
mov esi, eax
add esp, 8
test esi, esi
je 0x10003fbc
push esi
push ebx
lea eax, [esp + 0x14b8]
push 1
push eax
call dword [sym.imp.MSVCR71.dll_fwrite]
add esp, 0x10
cmp eax, ebx
push esi
je 0x10003f89
call dword [sym.imp.MSVCR71.dll_fclose]
add esp, 4
jmp 0x10003fbc
call dword [sym.imp.MSVCR71.dll_fclose]
mov ecx, dword [esp + 0x14]
add esp, 4
cmp ecx, 0x20
jle 0x10003fa0
mov ecx, 0x20
mov edx, ecx
shr ecx, 2
lea esi, [esp + 0x8b0]
lea edi, [esp + 0x24c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x20]
mov byte [esp + 0x24c4], 0
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
push 0x20
lea edx, [esp + 0x250]
push edx
call dword [eax + 4]
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
lea edx, [esp + 0x18]
push edx
lea edx, [esp + 0x274]
push edx
mov edx, dword [esp + 0x50]
push edx
lea edx, [esp + 0x2dc]
push edx
push 1
call dword [eax + 0xc]
mov esi, eax
lea eax, [esp + 0x4c]
push eax
call fcn.10015ec0
xor ebx, ebx
add esp, 4
cmp esi, ebx
je 0x10004956
mov ecx, 0x18
lea esi, [esp + 0x270]
lea edi, [esp + 0x2d0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x48], ecx
call fcn.10016550
cmp eax, ebx
mov dword [esp + 0x30], eax
je 0x10004956
xor edx, edx
mov dword [esp + 0x229], edx
mov dword [esp + 0x22d], edx
mov dword [esp + 0x231], edx
mov dword [esp + 0x235], edx
mov dword [esp + 0x239], edx
mov dword [esp + 0x23d], edx
lea eax, [esp + 0x64]
mov dword [esp + 0x241], edx
push eax
mov byte [esp + 0x22c], bl
mov dword [esp + 0x249], edx
call fcn.10008fc0
push str.LoginLogin.dat
push eax
lea ecx, [esp + 0x28]
push ecx
mov byte [esp + 0x24d4], 5
call fcn.10001de0
add esp, 0x10
lea ecx, [esp + 0x64]
mov byte [esp + 0x24c4], 7
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
xor eax, eax
mov byte [esp + 0xcb0], bl
mov ecx, 0x1ff
lea edi, [esp + 0xcb1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x4b0], bl
mov ecx, 0xff
lea edi, [esp + 0x4b1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [esp + 0x20b0], bl
xor eax, eax
mov ecx, 0xff
lea edi, [esp + 0x20b1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x1002d77c
lea ecx, [esp + 0x20]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ebx
xor edi, edi
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
call dword [sym.imp.MSVCR71.dll__wfopen]
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x1000416e
push 2
push ebx
mov ebx, dword [sym.imp.MSVCR71.dll_fseek]
push esi
call ebx
push esi
call dword [sym.imp.MSVCR71.dll_ftell]
push 0
push 0
push esi
mov edi, eax
call ebx
add esp, 0x1c
cmp edi, 0x800
jbe 0x1000416e
mov ebx, 0x800
mov dword [esp + 0x10], ebx
jmp 0x1000417c
test edi, edi
mov dword [esp + 0x10], edi
jle 0x10004323
mov ebx, edi
test esi, esi
je 0x10004323
push esi
push ebx
lea edx, [esp + 0xcb8]
push 1
push edx
call dword [sym.imp.MSVCR71.dll_fread]
add esp, 0x10
cmp eax, ebx
push esi
je 0x100041ac
call dword [sym.imp.MSVCR71.dll_fclose]
add esp, 4
jmp 0x10004323
call dword [sym.imp.MSVCR71.dll_fclose]
add esp, 4
lea ecx, [esp + 0x80]
call fcn.10010a90
cmp ebx, 0x20
mov ecx, 0x20
ja 0x100041cd
mov ecx, ebx
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0xcb0]
lea edi, [esp + 0x80]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp ebx, 0x20
rep movsb byte es:[edi], byte [esi]
jbe 0x100041f3
mov ebx, 0x20
mov esi, dword [esp + 0x10]
cmp ebx, esi
jge 0x10004323
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x84]
call fcn.10010ad0
test eax, eax
je 0x10004323
mov eax, esi
sub eax, ebx
cmp eax, 4
mov ecx, 4
ja 0x10004228
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea esi, [esp + ebx + 0xcb0]
lea edi, [esp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, 4
rep movsb byte es:[edi], byte [esi]
jbe 0x1000424b
mov eax, 4
add ebx, eax
mov eax, dword [esp + 0x10]
cmp ebx, eax
jge 0x10004323
mov ecx, dword [esp + 0xc]
test ecx, ecx
jle 0x10004323
cmp ecx, 0x20
jne 0x10004323
sub eax, ebx
cmp eax, ecx
jg 0x10004276
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea esi, [esp + ebx + 0xcb0]
lea edi, [esp + 0x4b0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, 0x20
rep movsb byte es:[edi], byte [esi]
jle 0x1000429c
mov eax, 0x20
mov edx, dword [esp + 0x10]
add ebx, eax
cmp ebx, edx
jge 0x10004323
sub edx, ebx
cmp edx, 4
mov ecx, 4
ja 0x100042b4
mov ecx, edx
mov eax, ecx
shr ecx, 2
lea esi, [esp + ebx + 0xcb0]
lea edi, [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp edx, 4
rep movsb byte es:[edi], byte [esi]
jbe 0x100042d7
mov edx, 4
mov eax, dword [esp + 0x10]
add ebx, edx
cmp ebx, eax
jge 0x10004323
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x10004323
sub eax, ebx
cmp ecx, eax
jl 0x100042f1
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea esi, [esp + ebx + 0xcb0]
lea edi, [esp + 0x20b0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x10004317
mov eax, ecx
add ebx, eax
cmp ebx, dword [esp + 0x10]
je 0x100045a7
mov esi, dword [sym.imp.ole32.dll_CoCreateGuid]
xor eax, eax
mov ecx, 0x100
lea edi, [esp + 0x4b0]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x164]
push eax
call esi
test eax, eax
jne 0x100043ce
movzx ecx, byte [esp + 0x173]
movzx edx, byte [esp + 0x172]
movzx eax, byte [esp + 0x171]
push ecx
movzx ecx, byte [esp + 0x174]
push edx
movzx edx, byte [esp + 0x177]
push eax
movzx eax, byte [esp + 0x17a]
push ecx
movzx ecx, byte [esp + 0x17d]
push edx
movzx edx, byte [esp + 0x180]
push eax
movzx eax, word [esp + 0x182]
push ecx
movzx ecx, word [esp + 0x184]
push edx
mov edx, dword [esp + 0x184]
push eax
push ecx
push edx
push str._08X_04X_04x_02X_02X_02X_02X_02X_02X_02X_02X
lea eax, [esp + 0x4e0]
push 0x400
push eax
call dword [sym.imp.MSVCR71.dll__snprintf]
add esp, 0x38
mov dword [esp + 0xc], eax
jmp 0x100043ee
push 0x20
lea ecx, [esp + 0x4b4]
push str.A86486387FF44994B1C3D4A68A09B18B
push ecx
call dword [sym.imp.MSVCR71.dll_strncpy]
add esp, 0xc
mov dword [esp + 0xc], 0x20
lea edx, [esp + 0x164]
xor eax, eax
mov ecx, 0x100
lea edi, [esp + 0x20b0]
push edx
rep stosd dword es:[edi], eax
call esi
test eax, eax
jne 0x10004493
movzx eax, byte [esp + 0x173]
movzx ecx, byte [esp + 0x172]
movzx edx, byte [esp + 0x171]
push eax
movzx eax, byte [esp + 0x174]
push ecx
movzx ecx, byte [esp + 0x177]
push edx
movzx edx, byte [esp + 0x17a]
push eax
movzx eax, byte [esp + 0x17d]
push ecx
movzx ecx, byte [esp + 0x180]
push edx
movzx edx, word [esp + 0x182]
push eax
movzx eax, word [esp + 0x184]
push ecx
mov ecx, dword [esp + 0x184]
push edx
push eax
push ecx
push str._08X_04X_04x_02X_02X_02X_02X_02X_02X_02X_02X
lea edx, [esp + 0x20e0]
push 0x400
push edx
call dword [sym.imp.MSVCR71.dll__snprintf]
add esp, 0x38
mov dword [esp + 0x14], eax
jmp 0x100044b3
push 0x20
lea eax, [esp + 0x20b4]
push str.033EA43D0C95436792206E6FF8E4E343
push eax
call dword [sym.imp.MSVCR71.dll_strncpy]
add esp, 0xc
mov dword [esp + 0x14], 0x20
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor eax, eax
mov ecx, 0x200
lea edi, [esp + 0xcb0]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x1a0]
call fcn.10010a90
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, 8
lea esi, [esp + 0x1a0]
lea edi, [esp + 0xcb0]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xcd0], ebx
mov ecx, ebx
mov edx, ecx
shr ecx, 2
lea esi, [esp + 0x4b0]
lea edi, [esp + 0xcd4]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add ebx, 0x24
mov dword [esp + ebx + 0xcb0], eax
mov ecx, eax
mov edx, ecx
shr ecx, 2
add ebx, 4
lea edi, [esp + ebx + 0xcb0]
lea esi, [esp + 0x20b0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x1002d6fc
lea ecx, [esp + 0x20]
add ebx, eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
call dword [sym.imp.MSVCR71.dll__wfopen]
mov esi, eax
add esp, 8
test esi, esi
je 0x100045c7
push esi
push ebx
lea eax, [esp + 0xcb8]
push 1
push eax
call dword [sym.imp.MSVCR71.dll_fwrite]
add esp, 0x10
cmp eax, ebx
push esi
je 0x10004593
call dword [sym.imp.MSVCR71.dll_fclose]
add esp, 4
jmp 0x100045c7
call dword [sym.imp.MSVCR71.dll_fclose]
mov ecx, 0x20
add esp, 4
cmp dword [esp + 0xc], ecx
jg 0x100045ab
mov ecx, dword [esp + 0xc]
mov edx, ecx
shr ecx, 2
lea esi, [esp + 0x4b0]
lea edi, [esp + 0x228]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x24c4], 0
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
push 0x20
lea edx, [esp + 0x22c]
push edx
call dword [eax + 4]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
lea edx, [esp + 0x18]
push edx
lea edx, [esp + 0x274]
push edx
mov edx, dword [esp + 0x50]
push edx
lea edx, [esp + 0x2dc]
push edx
push 1
call dword [eax + 0xc]
mov esi, eax
lea eax, [esp + 0x30]
push eax
call fcn.10015ec0
add esp, 4
test esi, esi
je 0x10004956
mov eax, dword [esp + 0x18]
mov ecx, 0x18
lea esi, [esp + 0x270]
lea edi, [esp + 0x2d0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x274]
push edx
push eax
lea ecx, [esp + 0x2dc]
push ecx
call fcn.10009090
add esp, 0x10
test eax, eax
je 0x10004956
mov ecx, 0x18
lea esi, [esp + 0x270]
lea edi, [esp + 0x2d0]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x18]
call fcn.10016550
test eax, eax
mov dword [esp + 0x44], eax
je 0x10004956
xor edx, edx
mov dword [esp + 0x1e1], edx
mov dword [esp + 0x1e5], edx
mov dword [esp + 0x1e9], edx
mov dword [esp + 0x1ed], edx
mov dword [esp + 0x1f1], edx
mov dword [esp + 0x1f5], edx
lea ecx, [esp + 0x1e0]
test ecx, ecx
mov dword [esp + 0x1f9], edx
mov byte [esp + 0x1e0], 0
mov dword [esp + 0x1fd], edx
je 0x1000489a
mov byte [esp + 0x17c], dl
mov dword [esp + 0x17d], edx
mov dword [esp + 0x181], edx
mov dword [esp + 0x185], edx
xor eax, eax
mov dword [esp + 0x189], edx
mov dword [esp + 0x1c9], eax
mov dword [esp + 0x18d], edx
mov dword [esp + 0x1cd], eax
xor ecx, ecx
mov dword [esp + 0x159], ecx
mov dword [esp + 0x191], edx
mov dword [esp + 0x1d1], eax
mov dword [esp + 0x195], edx
mov dword [esp + 0x1d5], eax
mov dword [esp + 0x15d], ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x199], edx
mov byte [esp + 0x1c8], dl
mov dword [esp + 0x1d9], eax
mov byte [esp + 0x158], al
call fcn.10025240
push 0
lea edx, [esp + 0x180]
push edx
lea ecx, [esp + 0x58]
mov byte [esp + 0x24cc], 8
call fcn.10027630
push 0
lea eax, [esp + 0x1cc]
push eax
lea ecx, [esp + 0x58]
call fcn.100241c0
lea ecx, [esp + 0x158]
push ecx
lea ecx, [esp + 0x54]
call fcn.10024280
mov esi, 3
lea edx, [esp + 0x17e]
xor eax, eax
sub esi, edx
lea esp, [esp]
cmp eax, 0x14
jge 0x100047d5
mov cl, byte [esp + eax + 0x1c8]
add byte [esp + eax + 0x17c], cl
jmp 0x100047e8
cmp eax, 0x1c
jge 0x100047e8
mov dl, byte [esp + eax + 0x144]
add byte [esp + eax + 0x17c], dl
cmp eax, 0x13
jge 0x100047fd
mov cl, byte [esp + eax + 0x1c9]
add byte [esp + eax + 0x17d], cl
jmp 0x10004810
cmp eax, 0x1b
jge 0x10004810
mov dl, byte [esp + eax + 0x145]
add byte [esp + eax + 0x17d], dl
cmp eax, 0x12
jge 0x10004825
mov cl, byte [esp + eax + 0x1ca]
add byte [esp + eax + 0x17e], cl
jmp 0x10004838
cmp eax, 0x1a
jge 0x10004838
mov dl, byte [esp + eax + 0x146]
add byte [esp + eax + 0x17e], dl
lea ecx, [esp + eax + 0x17e]
lea edx, [ecx + esi]
cmp edx, 0x14
jge 0x10004850
mov dl, byte [esp + eax + 0x1cb]
jmp 0x1000485c
cmp edx, 0x1c
jge 0x1000485f
mov dl, byte [esp + eax + 0x147]
add byte [ecx + 1], dl
add eax, 4
cmp eax, 0x20
jl 0x100047c0
lea eax, [esp + 0x1e0]
push eax
lea ecx, [esp + 0x180]
push 0x20
push ecx
call fcn.100163a0
add esp, 0xc
lea ecx, [esp + 0x50]
mov byte [esp + 0x24c4], 0
call fcn.100250d0
mov eax, dword [esp + 0x44]
mov edx, dword [eax]
push 0x20
lea ecx, [esp + 0x1e4]
push ecx
mov ecx, eax
call dword [edx + 4]
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x274]
push eax
push edi
lea eax, [esp + 0x2dc]
push eax
push 1
call dword [edx + 0xc]
lea ecx, [esp + 0x44]
push ecx
mov esi, eax
call fcn.10015ec0
add esp, 4
test esi, esi
je 0x10004956
lea edx, [esp + 0x270]
push 0x58
push edx
call fcn.10009210
add dword [esp + 0x3c], eax
add esp, 8
mov ecx, 0x16
lea esi, [esp + 0x270]
lea edi, [esp + 0x100]
lea eax, [esp + 0x100]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x38]
push eax
call fcn.10003040
mov edi, eax
mov ecx, 0x16
lea esi, [esp + 0x100]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x100]
push ecx
lea ecx, [esi + 0x64]
call fcn.10002ba0
mov eax, dword [esp + 0x2c]
movzx edx, word [esi + 4]
add eax, 1
cmp eax, edx
mov dword [esp + 0x2c], eax
jl 0x100038f2
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x10], ecx
je 0x1000498f
mov esi, dword [esp + 0x38]
mov edx, dword [esi + 4]
mov eax, dword [edx + 4]
push eax
mov ecx, esi
call fcn.10002100
mov eax, dword [esi + 4]
mov dword [eax + 4], eax
mov eax, dword [esi + 4]
mov dword [esi + 8], 0
mov dword [eax], eax
mov esi, dword [esi + 4]
mov dword [esi + 8], esi
jmp 0x100049cc
movzx ecx, word [eax + 4]
cmp dword [eax + 0x60], ecx
je 0x100049c4
mov esi, dword [esp + 0x38]
mov edx, dword [esi + 4]
mov eax, dword [edx + 4]
push eax
mov ecx, esi
call fcn.10002100
mov eax, dword [esi + 4]
mov dword [eax + 4], eax
mov eax, dword [esi + 4]
mov dword [esi + 8], 0
mov dword [eax], eax
mov esi, dword [esi + 4]
mov dword [esi + 8], esi
jmp 0x100049cc
mov dword [esp + 0x5c], 1
mov ecx, dword [esp + 0x28]
push ecx
call dword [sym.imp.MSVCR71.dll_fclose]
mov esi, dword [esp + 0x60]
add esp, 4
test esi, esi
jne 0x100049f3
mov ecx, dword [esp + 0x60]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, dword [esp + 0x68]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
mov ecx, dword [esp + 0x24bc]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x24b4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1001590b
mov esp, ebp
pop ebp
ret 4