Function at 0x49c110
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d8a35
mov eax, dword fs:[0]
push eax
sub esp, 0x280
mov eax, dword [0x5010c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push 1
mov dword [ebp - 0x240], esi
mov dword [ebp - 0x238], eax
call fcn.0041af70
add esp, 4
lea ecx, [ebp - 0x264]
push 0
push esi
call fcn.00492fd0
push ecx
mov esi, esp
mov dword [ebp - 4], 0
mov dword [ebp - 0x230], esi
call fcn.00404f80
mov ecx, eax
test ecx, ecx
je 0x49ceb4
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str._pid
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.004048d0
test al, al
jne 0x49c1b4
push 4
push str._pid
mov ecx, esi
call fcn.00404b80
lea ecx, [ebp - 0x264]
mov byte [ebp - 4], 0
call fcn.00493ff0
or edi, 0xffffffff
test eax, eax
je 0x49c25a
push ecx
mov esi, esp
mov dword [ebp - 0x230], esi
call fcn.00404f80
mov ecx, eax
test ecx, ecx
je 0x49ceb4
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str._pid
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.004048d0
test al, al
jne 0x49c214
push 4
push str._pid
mov ecx, esi
call fcn.00404b80
lea eax, [ebp - 0x22c]
mov byte [ebp - 4], 0
push eax
lea ecx, [ebp - 0x264]
call fcn.00494080
push eax
mov ecx, 0x504c60
mov byte [ebp - 4], 3
call fcn.00403390
mov edx, dword [ebp - 0x22c]
mov eax, edi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49c25a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004a15c0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov esi, eax
call fcn.00404f80
test eax, eax
je 0x49ceb4
mov edx, dword [eax]
mov ecx, eax
mov edx, dword [edx + 0xc]
call edx
add eax, 0x10
mov dword [ebp - 0x224], eax
push esi
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 4
call fcn.004048d0
test al, al
jne 0x49c2ef
test esi, esi
jne 0x49c2ce
xor ecx, ecx
jmp 0x49c2e2
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x49c2d3
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x224]
call fcn.00404b80
mov eax, dword [ebp - 0x224]
mov byte [ebp - 4], 5
cmp dword [eax - 4], 1
jle 0x49c313
push dword [eax - 0xc]
lea ecx, [ebp - 0x224]
call fcn.004049f0
mov eax, dword [ebp - 0x224]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveExtensionW]
mov eax, dword [ebp - 0x224]
push dword [eax - 8]
push eax
call fcn.004abf56
mov edx, eax
add esp, 8
test edx, edx
js 0x49ced2
mov ecx, dword [ebp - 0x224]
cmp edx, dword [ecx - 8]
jg 0x49ced2
mov dword [ecx - 0xc], edx
xor ecx, ecx
mov eax, dword [ebp - 0x224]
mov dword [ebp - 0x22c], ecx
mov word [eax + edx*2], cx
mov dword [ebp - 0x24c], ecx
mov dword [ebp - 0x248], ecx
mov dword [ebp - 0x244], ecx
mov byte [ebp - 4], 6
call fcn.00404f80
mov ecx, eax
test ecx, ecx
je 0x49cebe
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x21c], eax
push 0x4e9fe4
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 7
call fcn.004048d0
test al, al
jne 0x49c3b9
push 1
push 0x4e9fe4
lea ecx, [ebp - 0x21c]
call fcn.00404b80
lea eax, [ebp - 0x24c]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.00477b60
mov edx, dword [ebp - 0x21c]
add esp, 0xc
mov byte [ebp - 4], 6
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49c3fb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x504c60]
cmp dword [eax - 0xc], 0
jne 0x49c439
mov edx, dword [ebp - 0x248]
mov esi, dword [ebp - 0x24c]
sub edx, esi
sar edx, 2
cmp edx, 3
jb 0x49c42f
lea eax, [esi + 8]
mov ecx, 0x504c60
push eax
call fcn.00403390
mov eax, dword [0x504c60]
cmp dword [eax - 0xc], 0
je 0x49c529
lea eax, [ebp - 0x21c]
push eax
call fcn.00478ca0
add esp, 4
push dword [ebp - 0x21c]
mov byte [ebp - 4], 9
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x49c483
push eax
push 0x80
push 2
push eax
push eax
push 0xc0000000
push dword [ebp - 0x21c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x49c483
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x234]
push eax
call fcn.00473c90
add esp, 4
mov ecx, dword [eax]
lea edx, [ebp - 0x220]
push edx
mov byte [ebp - 4], 0xa
mov eax, dword [ecx]
mov eax, dword [eax + 0xec]
call eax
push dword [ebp - 0x21c]
push dword [0x504c60]
push str.DPid
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov edx, dword [ebp - 0x220]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49c4df
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x230]
test esi, esi
je 0x49c508
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x49c508
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x49c508
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edx, dword [ebp - 0x21c]
mov eax, edi
mov byte [ebp - 4], 6
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49c529
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x248]
mov esi, dword [ebp - 0x24c]
sub eax, esi
sar eax, 2
cmp eax, 4
jb 0x49c5b4
mov eax, dword [esi + 0xc]
sub eax, 0x10
push eax
call fcn.00404680
mov edi, eax
add esp, 4
cmp dword [edi + 4], 0
lea esi, [edi + 0x10]
jl 0x49c59f
push str.SMDB
push esi
call fcn.004a179c
add esp, 8
test eax, eax
je 0x49c574
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x49c595
cmp dword [esi - 0xc], 0
jl 0x49c59f
push 0x4eb730
push esi
call fcn.004a179c
add esp, 8
test eax, eax
je 0x49c59f
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
je 0x49c59f
mov dword [ebp - 0x22c], 1
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x49c5b4
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00404f80
mov ecx, eax
test ecx, ecx
je 0x49ceb4
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x23c], eax
mov esi, dword [ebp - 0x240]
lea ecx, [ebp - 0x23c]
push esi
mov byte [ebp - 4], 0xb
call fcn.004048d0
test al, al
jne 0x49c61c
test esi, esi
jne 0x49c5f5
xor ecx, ecx
jmp 0x49c60f
mov ecx, esi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x49c600
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x23c]
call fcn.00404b80
mov edi, dword [ebp - 0x23c]
mov byte [ebp - 4], 0xc
cmp dword [edi - 0xc], 0
jl 0x49c66f
push 0x4dbe40
push edi
call fcn.004a179c
add esp, 8
test eax, eax
je 0x49c647
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jne 0x49c668
cmp dword [edi - 0xc], 0
jl 0x49c66f
push 0x4dbe48
push edi
call fcn.004a179c
add esp, 8
test eax, eax
je 0x49c66f
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
je 0x49c66f
mov eax, 1
jmp 0x49c671
xor eax, eax
mov dword [0x504c5c], eax
cmp dword [edi - 0xc], 0
jl 0x49cac9
push 0x4dbe50
push edi
call fcn.004a179c
add esp, 8
test eax, eax
je 0x49c69b
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jne 0x49c6c8
cmp dword [edi - 0xc], 0
jl 0x49cac9
push 0x4dbe58
push edi
call fcn.004a179c
add esp, 8
test eax, eax
je 0x49ca7f
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
je 0x49ca7f
push ecx
mov esi, esp
mov dword [ebp - 0x230], esi
call fcn.00404f80
mov ecx, eax
test ecx, ecx
je 0x49ceb4
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4dbe58
mov ecx, esi
mov byte [ebp - 4], 0xd
call fcn.004048d0
test al, al
jne 0x49c70e
push 2
push 0x4dbe58
mov ecx, esi
call fcn.00404b80
lea eax, [ebp - 0x21c]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x264]
call fcn.00494080
mov eax, dword [ebp - 0x21c]
mov byte [ebp - 4], 0xe
cmp dword [eax - 0xc], 0
jne 0x49c7c6
push ecx
mov esi, esp
mov dword [ebp - 0x230], esi
call fcn.00404f80
mov ecx, eax
test ecx, ecx
je 0x49cec8
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4dbe50
mov ecx, esi
mov byte [ebp - 4], 0xf
call fcn.004048d0
test al, al
jne 0x49c77e
push 2
push 0x4dbe50
mov ecx, esi
call fcn.00404b80
lea eax, [ebp - 0x220]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x264]
call fcn.00494080
push eax
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 0x10
call fcn.00403390
mov edx, dword [ebp - 0x220]
or eax, 0xffffffff
mov byte [ebp - 4], 0xe
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49c7c6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x21c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x49c9ef
xor esi, esi
nop dword [eax]
mov eax, dword [ebp - 0x21c]
test esi, esi
js 0x49c836
cmp esi, dword [eax - 0xc]
jg 0x49c836
lea ecx, [esi + esi]
add eax, ecx
mov dword [ebp - 0x228], ecx
push 0x4ea418
push eax
call fcn.004a179c
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x21c]
test ecx, ecx
jne 0x49c81f
mov edx, dword [eax - 0xc]
mov ecx, dword [ebp - 0x228]
jmp 0x49c844
sub ecx, eax
sar ecx, 1
mov dword [ebp - 0x220], ecx
cmp ecx, 0xffffffff
jne 0x49c87f
mov ecx, dword [ebp - 0x228]
jmp 0x49c839
lea ecx, [esi + esi]
mov edx, dword [eax - 0xc]
test esi, esi
js 0x49c9e6
cmp esi, edx
jg 0x49c9e6
add eax, ecx
push 0x4ec598
push eax
call fcn.004a179c
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x49c9e0
mov eax, dword [ebp - 0x21c]
sub ecx, eax
sar ecx, 1
mov dword [ebp - 0x220], ecx
cmp ecx, 0xffffffff
je 0x49c9e6
xor esi, esi
test ecx, ecx
cmovns esi, ecx
mov dword [ebp - 0x230], esi
cmp esi, dword [eax - 0xc]
jl 0x49c8a5
add eax, 0xfffffff0
push eax
call fcn.00404680
add esp, 4
lea esi, [eax + 0x10]
jmp 0x49c97d
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x49c8cd
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, eax
test ecx, ecx
je 0x49c8cd
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x240], eax
jmp 0x49c8f7
call fcn.00404f80
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
call eax
mov ecx, eax
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x240], eax
test ecx, ecx
je 0x49ceb4
test eax, eax
jne 0x49c903
test esi, esi
jne 0x49ced2
mov eax, dword [ecx]
push 2
push esi
mov eax, dword [eax]
call eax
test eax, eax
je 0x49cedc
lea esi, [eax + 0x10]
mov eax, dword [ebp - 0x230]
test eax, eax
js 0x49ced2
cmp eax, dword [esi - 8]
jg 0x49ced2
lea ecx, [eax + eax]
mov dword [esi - 0xc], eax
xor eax, eax
mov word [ecx + esi], ax
test ecx, ecx
je 0x49c97d
test esi, esi
je 0x49c96d
mov eax, dword [ebp - 0x228]
push ecx
test eax, eax
je 0x49c959
push eax
push esi
call fcn.004a1040
add esp, 0xc
jmp 0x49c97d
push 0
push esi
call fcn.004a15c0
add esp, 0xc
cmp dword [ebp - 0x240], 0
jne 0x49c97d
call fcn.004a4c8d
mov dword [eax], 0x16
call fcn.004a4b8f
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x49c990
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ecx, dword [ebp - 0x220]
lea edx, [esi - 0x10]
mov eax, dword [ebp - 0x21c]
inc ecx
mov dword [ebp - 0x220], ecx
cmp ecx, dword [eax - 0xc]
jge 0x49c9cb
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
mov esi, ecx
test eax, eax
jg 0x49c7e0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x49c7e0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49c9e0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x21c]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push ecx
mov esi, esp
mov dword [ebp - 0x230], esp
mov dword [ebp - 0x220], esi
mov eax, dword [ebp - 0x21c]
add eax, 0xfffffff0
push eax
call fcn.00404680
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov eax, dword [0x504c48]
mov byte [ebp - 4], 0x11
test eax, eax
jne 0x49ca51
push 0x180
call fcn.0049f7ce
add esp, 4
mov dword [ebp - 0x220], eax
mov byte [ebp - 4], 0x12
test eax, eax
je 0x49ca46
mov ecx, eax
call fcn.00450bb0
jmp 0x49ca48
xor eax, eax
mov byte [ebp - 4], 0x11
mov dword [0x504c48], eax
lea ecx, [eax + 4]
mov byte [ebp - 4], 0xe
call fcn.00458d50
mov edx, dword [ebp - 0x21c]
or eax, 0xffffffff
mov byte [ebp - 4], 0xc
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49ca7f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [edi - 0xc], 0
jl 0x49cac9
push 0x4dbe60
push edi
call fcn.004a179c
add esp, 8
test eax, eax
je 0x49caa4
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jne 0x49cc08
cmp dword [edi - 0xc], 0
jl 0x49cac9
push 0x4dbe68
push edi
call fcn.004a179c
add esp, 8
test eax, eax
je 0x49cac9
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jne 0x49cc08
cmp dword [ebp - 0x22c], 0
jne 0x49cc08
cmp dword [0x504c5c], 0
mov dword [0x504c58], 0
jne 0x49caf3
call fcn.00474120
mov dword [0x504c5c], eax
push 0x4e5478
push str.start
push 0x4db14c
call fcn.00476470
add esp, 0xc
cmp dword [0x504c4c], 0
jne 0x49cb42
push 0x128
call fcn.0049f7ce
add esp, 4
mov dword [ebp - 0x230], eax
mov byte [ebp - 4], 0x16
test eax, eax
je 0x49cb37
mov ecx, eax
call fcn.00495e00
jmp 0x49cb39
xor eax, eax
mov byte [ebp - 4], 0xc
mov dword [0x504c4c], eax
call fcn.004963d0
mov esi, dword [ebp - 0x238]
add esi, 0x1c
mov dword [ebp - 0x228], 0
mov edi, 1
nop
test edi, edi
je 0x49cb9d
push 0
push 0
push 0
push 0
push esi
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x49cb9d
mov ecx, dword [ebp - 0x238]
push dword [ebp - 0x228]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
inc dword [ebp - 0x228]
xor ecx, ecx
test eax, eax
cmovne ecx, edi
mov edi, ecx
test edi, edi
jne 0x49cb64
push 0
push 0
push 0
push esi
call dword [sym.imp.USER32.dll_GetMessageW]
cmp eax, 0xffffffff
je 0x49cb60
test eax, eax
je 0x49cbee
mov ecx, dword [ebp - 0x238]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test eax, eax
jne 0x49cbd3
push esi
call dword [sym.imp.USER32.dll_TranslateMessage]
push esi
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov ecx, dword [ebp - 0x238]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
test eax, eax
je 0x49cb60
jmp 0x49cb50
mov eax, dword [ebp - 0x238]
mov edi, dword [ebp - 0x23c]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x22c], ecx
jmp 0x49cd2a
mov dword [0x504c58], 1
cmp dword [edi - 0xc], 0
jl 0x49cc47
push 0x4dbe70
push edi
call fcn.004a179c
add esp, 8
test eax, eax
je 0x49cc33
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jne 0x49cc47
cmp dword [edi - 0xc], 0
jl 0x49cc47
push 0x4dbe78
push edi
call fcn.004a179c
add esp, 8
push 0x4e5478
push str.start
push 0x4db14c
call fcn.00476470
movaps xmm0, xmmword [0x4dab30]
sub esp, 0x1c
movaps xmm1, xmmword [0x4dab30]
mov eax, esp
mov dword [ebp - 0x26c], 0
mov dword [ebp - 0x268], 0
push 0
movups xmmword [eax], xmm0
push ecx
movq xmm0, qword [ebp - 0x26c]
mov esi, esp
movups xmmword [eax + 0x10], xmm1
mov dword [ebp - 0x22c], esi
movq qword [eax + 0x20], xmm0
mov eax, dword [0x504c60]
add eax, 0xfffffff0
mov dword [ebp - 0x230], esp
push eax
call fcn.00404680
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov eax, dword [0x504c48]
mov byte [ebp - 4], 0x13
test eax, eax
jne 0x49ccf9
push 0x180
call fcn.0049f7ce
add esp, 4
mov dword [ebp - 0x22c], eax
mov byte [ebp - 4], 0x14
test eax, eax
je 0x49ccee
mov ecx, eax
call fcn.00450bb0
jmp 0x49ccf0
xor eax, eax
mov byte [ebp - 4], 0x13
mov dword [0x504c48], eax
push dword [0x504c5c]
mov ecx, eax
push dword [0x504c58]
mov byte [ebp - 4], 0xc
call fcn.00450f70
test eax, eax
js 0x49cd20
call fcn.00494f10
mov ecx, eax
call fcn.00453460
mov dword [ebp - 0x22c], 0
mov byte [ebp - 4], 6
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x49cd46
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x24c]
mov byte [ebp - 4], 5
test esi, esi
je 0x49cde1
mov edi, dword [ebp - 0x248]
cmp esi, edi
je 0x49cd89
mov edx, dword [esi]
or eax, 0xffffffff
sub edx, 0x10
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49cd7c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 4
cmp esi, edi
jne 0x49cd62
mov esi, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x244]
sub eax, esi
sar eax, 2
lea ecx, [eax*4]
mov eax, esi
cmp ecx, 0x1000
jb 0x49cdb9
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49cee1
push ecx
push esi
call fcn.0049f7fe
add esp, 8
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
mov edx, dword [ebp - 0x224]
or eax, 0xffffffff
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49ce03
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x260]
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x49ce75
mov eax, dword [ebp - 0x25c]
xor esi, esi
mov dword [ebp - 0x230], eax
test eax, eax
je 0x49ce6c
mov edx, dword [edi + esi*8 + 4]
or eax, 0xffffffff
sub edx, 0x10
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49ce42
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [edi + esi*8]
or eax, 0xffffffff
sub edx, 0x10
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49ce5d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc esi
cmp esi, dword [ebp - 0x230]
jb 0x49ce26
mov edi, dword [ebp - 0x260]
push edi
call fcn.004a4ca0
add esp, 4
mov eax, dword [ebp - 0x264]
or ecx, 0xffffffff
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x49ce93
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x22c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049fb4b
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00404d50
push 0x80004005
call fcn.00404d50
push 0x80004005
call fcn.00404d50
push 0x80070057
call fcn.00404d50
call fcn.00403d00
call fcn.004a4b9f
int3