Function at 0x4eddd0
Capabilities:
Copy file
Create directory
Delete file
Resolve function by parsing pe exports
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x568bc4
mov eax, dword fs:[0]
push eax
sub esp, 0x868
mov eax, dword [0x5b3680]
xor eax, esp
mov dword [esp + 0x860], eax
push ebx
push esi
push edi
mov eax, dword [0x5b3680]
xor eax, esp
push eax
lea eax, [esp + 0x878]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov dword [esp + 0x20], 0
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, 0x54
add eax, ebx
push eax
call fcn.004729c0
test eax, eax
je 0x4eecdf
call fcn.00402a00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ede4f
push 0x80004005
call fcn.004027b0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x48], eax
mov dword [esp + 0x880], 1
mov edx, str.imlog
push 0
push 1
lea ecx, [esp + 0x50]
call fcn.004820b0
mov eax, dword [esp + 0x50]
add esp, 8
or edi, 0xffffffff
cmp dword [eax - 0xc], 0
jg 0x4ede91
xor ebx, ebx
jmp 0x4eecb7
lea ecx, [esp + 0x38]
call fcn.00402b10
mov byte [esp + 0x880], 2
lea ecx, [esp + 0x2c]
call fcn.00482350
mov byte [esp + 0x880], 3
mov eax, dword [0x5ba51c]
test eax, eax
je 0x4ededb
cmp dword [eax + 0x180], 0
je 0x4ededb
mov eax, dword [ebx]
lea ecx, [esp + 0x2c]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx + 0x54]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov esi, dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
push 0
push dword [esp + 0x30]
push 0
call esi
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 2
push dword [esp + 0x30]
call edi
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x3c]
call fcn.00416320
push 0x588b94
lea eax, [esp + 0x3c]
push 0x58b238
push eax
call fcn.00443ea0
push 0x588b9c
lea eax, [esp + 0x3c]
push 0x58b238
push eax
call fcn.00443ea0
add esp, 0x18
push 0
push dword [esp + 0x30]
push 0
call esi
push 0
push dword [esp + 0x3c]
push 0
call esi
push 2
push dword [esp + 0x30]
call edi
push 2
push dword [esp + 0x3c]
call edi
lea ecx, [esp + 0x4c]
call fcn.00402b10
mov byte [esp + 0x880], 4
lea eax, [esp + 0x4c]
push dword [esp + 0x48]
push dword [esp + 0x30]
push 0x58ae70
push eax
call fcn.00415d20
push 0x58c254
push dword [esp + 0x60]
call fcn.0052e5ea
add esp, 0x18
mov dword [esp + 0x50], eax
test eax, eax
jne 0x4edfd8
push 0x7fe
push eax
mov word [esp + 0x74], ax
lea eax, [esp + 0x76]
push eax
call fcn.00531bd0
push dword [ebx + 0x40]
lea eax, [esp + 0x7c]
push str.Cant_save_IMlog___s_n
push 0x400
push 0x400
push eax
call fcn.0052de9c
add esp, 0x20
mov ebx, 1
or edi, 0xffffffff
jmp 0x4eec48
mov eax, dword [ebx + 0xb8]
mov dword [esp + 0x24], eax
test eax, eax
je 0x4ee102
xor edi, edi
test eax, eax
je 0x4ee102
mov dword [esp + 0x18], edi
jmp 0x4ee000
mov ecx, dword [esp + 0x38]
lea ecx, [ecx - 0x10]
call fcn.004022c0
lea esi, [eax + 0x10]
mov dword [esp + 0x30], esi
mov byte [esp + 0x880], 6
cmp dword [ebx + 0x7c], 3
jne 0x4ee08f
cmp edi, dword [ebx + 0xb8]
jae 0x4ee159
mov ecx, dword [ebx + 0xb4]
lea eax, [esp + 0x1c]
add ecx, 4
add ecx, dword [esp + 0x18]
push eax
call fcn.00436c90
mov byte [esp + 0x880], 7
push 0x588b8c
push dword [eax]
lea eax, [esp + 0x38]
push str._s._s
push eax
call fcn.00443ea0
add esp, 0x10
mov byte [esp + 0x880], 6
or ecx, 0xffffffff
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ee08b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esp + 0x30]
cmp edi, dword [ebx + 0xb8]
jae 0x4ee159
mov eax, dword [ebx + 0xb4]
add eax, dword [esp + 0x18]
push 0
push esi
push dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp edi, dword [ebx + 0xb8]
jae 0x4ee159
mov eax, dword [ebx + 0xb4]
add eax, dword [esp + 0x18]
push dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [esp + 0x880], 4
add esi, 0xfffffff0
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ee0f2
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add dword [esp + 0x18], 0x50
inc edi
cmp edi, dword [esp + 0x24]
jb 0x4ee000
call fcn.00402a00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ee11e
push 0x80004005
call fcn.004027b0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x880], 0xb
mov edx, 1
mov ecx, dword [eax - 8]
sub edx, dword [eax - 4]
dec ecx
or ecx, edx
jge 0x4ee153
push 1
lea ecx, [esp + 0x18]
call fcn.00402590
mov eax, dword [esp + 0x14]
cmp dword [eax - 8], 1
jge 0x4ee163
push 0x80070057
call fcn.004027b0
xor ecx, ecx
mov dword [eax - 0xc], 1
mov word [eax + 2], cx
cmp dword [eax - 8], 1
jl 0x4ee159
mov dword [eax - 0xc], 1
mov word [eax + 2], cx
mov esi, dword [eax - 0xc]
test esi, esi
jg 0x4ee192
push 0x80070057
call fcn.004027b0
cmp dword [eax - 4], 1
jle 0x4ee1a6
push esi
lea ecx, [esp + 0x18]
call fcn.004024c0
mov eax, dword [esp + 0x14]
mov ecx, 0x802
mov word [eax], cx
test esi, esi
js 0x4ee159
cmp esi, dword [eax - 8]
jg 0x4ee159
xor ecx, ecx
mov dword [eax - 0xc], esi
push ecx
mov word [eax + esi*2], cx
mov esi, esp
cmp dword [ebx + 4], 2
mov dword [esp + 0x38], esp
mov dword [esp + 0x2c], esi
jne 0x4ee32f
mov ecx, dword [ebx + 0x74]
sub ecx, 0x10
call fcn.004022c0
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x884], 0xd
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x888], 0xb
call fcn.004eed20
mov byte [esp + 0x880], 0xe
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0xb
or edi, 0xffffffff
mov edx, dword [esp + 0x1c]
mov ecx, edi
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ee23e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebx + 0x7c], 3
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
jne 0x4ee27e
push str.Call
call fcn.004031c0
mov byte [esp + 0x884], 0x10
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x888], 0xb
call fcn.004eed20
mov byte [esp + 0x880], 0x11
mov ecx, 1
jmp 0x4ee2b5
push 0x58c088
call fcn.004031c0
mov dword [esp + 0x884], 0x12
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x888], 0x11
call fcn.004eed20
mov dword [esp + 0x880], 0x13
mov ecx, 2
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov dword [esp + 0x880], 0x11
mov edx, dword [esp + 0x20]
test dl, 2
je 0x4ee30f
and edx, 0xfffffffd
mov dword [esp + 0x20], edx
mov dword [esp + 0x880], 0x11
mov ecx, edi
mov esi, dword [esp + 0x1c]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ee30f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x880], 0xb
test dl, 1
je 0x4ee4a5
and edx, 0xfffffffe
mov dword [esp + 0x20], edx
jmp 0x4ee480
mov ecx, dword [ebx + 0x78]
sub ecx, 0x10
call fcn.004022c0
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x884], 0x17
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x888], 0xb
call fcn.004eed20
mov byte [esp + 0x880], 0x18
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0xb
or edi, 0xffffffff
mov edx, dword [esp + 0x1c]
mov ecx, edi
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ee398
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebx + 0x7c], 3
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
jne 0x4ee3d8
push str.Call
call fcn.004031c0
mov byte [esp + 0x884], 0x1a
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x888], 0xb
call fcn.004eed20
mov byte [esp + 0x880], 0x1b
mov ecx, 4
jmp 0x4ee40f
push str.From
call fcn.004031c0
mov dword [esp + 0x884], 0x1c
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x888], 0x1b
call fcn.004eed20
mov dword [esp + 0x880], 0x1d
mov ecx, 8
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov dword [esp + 0x880], 0x1b
mov edx, dword [esp + 0x20]
test dl, 8
je 0x4ee469
and edx, 0xfffffff7
mov dword [esp + 0x20], edx
mov dword [esp + 0x880], 0x1b
mov ecx, edi
mov esi, dword [esp + 0x1c]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ee469
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x880], 0xb
test dl, 4
je 0x4ee4a5
and edx, 0xfffffffb
mov dword [esp + 0x20], edx
mov byte [esp + 0x880], 0xb
mov ecx, edi
mov edx, dword [esp + 0x24]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ee4a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
lea ecx, [ebx + 0x14]
mov eax, dword [eax + 4]
add ecx, eax
je 0x4ee4b6
add ecx, 4
jmp 0x4ee4b8
xor ecx, ecx
mov eax, dword [ecx]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
call fcn.00402a00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ee4f1
push 0x80004005
call fcn.004027b0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x30], eax
mov byte [esp + 0x880], 0x21
movzx eax, word [esp + 0x5c]
push eax
movzx eax, word [esp + 0x62]
push eax
movzx eax, word [esp + 0x6a]
push eax
lea eax, [esp + 0x3c]
push str._02d._02d._04d
push eax
call fcn.00415d20
mov ecx, dword [esp + 0x44]
add esp, 0x10
mov esi, esp
mov dword [esp + 0x38], esp
mov dword [esp + 0x2c], esi
lea ecx, [ecx - 0x10]
call fcn.004022c0
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x884], 0x23
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x888], 0x21
call fcn.004eed20
mov byte [esp + 0x880], 0x24
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0x21
mov ecx, edi
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ee59c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
movzx eax, word [esp + 0x68]
push eax
movzx eax, word [esp + 0x6a]
push eax
movzx eax, word [esp + 0x6c]
push eax
lea eax, [esp + 0x3c]
push str._02d:_02d:_02d
push eax
call fcn.00415d20
mov eax, dword [esp + 0x44]
add esp, 0x10
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov esi, esp
mov dword [esp + 0x38], eax
mov ecx, eax
mov dword [esp + 0x48], esi
call fcn.004022c0
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x884], 0x27
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x888], 0x21
call fcn.004eed20
mov byte [esp + 0x880], 0x28
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0x21
mov ecx, edi
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ee637
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0xf4]
cmp eax, 5
ja case.default.0x4ee646
jmp dword [eax*4 + 0x4eed08]
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 0x592c68
call fcn.004031c0
mov byte [esp + 0x884], 0x2a
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x888], 0x21
call fcn.004eed20
mov byte [esp + 0x880], 0x2b
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0x21
lea ecx, [esp + 0x1c]
call fcn.00402750
jmp 0x4ee8c1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 0x592c70
call fcn.004031c0
mov byte [esp + 0x884], 0x2c
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x888], 0x21
call fcn.004eed20
mov byte [esp + 0x880], 0x2d
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0x21
lea ecx, [esp + 0x24]
call fcn.00402750
jmp 0x4ee8c1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 0x592c78
call fcn.004031c0
mov byte [esp + 0x884], 0x2e
lea eax, [esp + 0x1c]
push eax
mov byte [esp + 0x888], 0x21
call fcn.004eed20
mov byte [esp + 0x880], 0x2f
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0x21
lea ecx, [esp + 0x18]
call fcn.00402750
jmp 0x4ee8c1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.XMPP
call fcn.004031c0
mov byte [esp + 0x884], 0x30
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0x888], 0x21
call fcn.004eed20
mov byte [esp + 0x880], 0x31
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0x21
lea ecx, [esp + 0x58]
call fcn.00402750
jmp 0x4ee8c1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 0x592c8c
call fcn.004031c0
mov byte [esp + 0x884], 0x32
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x888], 0x21
call fcn.004eed20
mov byte [esp + 0x880], 0x33
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0x21
lea ecx, [esp + 0x54]
call fcn.00402750
jmp 0x4ee8c1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.SKYPE
call fcn.004031c0
mov byte [esp + 0x884], 0x34
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x888], 0x21
call fcn.004eed20
mov byte [esp + 0x880], 0x35
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0x21
lea ecx, [esp + 0x44]
call fcn.00402750
jmp 0x4ee8c1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 0x592ca0
call fcn.004031c0
mov byte [esp + 0x884], 0x36
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0x888], 0x21
call fcn.004eed20
mov byte [esp + 0x880], 0x37
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0x21
mov ecx, edi
mov edx, dword [esp + 0x28]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ee8c1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00402a00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ee8dd
push 0x80004005
call fcn.004027b0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x880], 0x3a
mov ecx, dword [ebx + 0xb8]
mov dword [esp + 0x24], ecx
test ecx, ecx
jle 0x4ee9f7
cmp dword [ebx + 0xf4], 5
jne 0x4ee9f7
cmp dword [ebx + 0x7c], 3
je 0x4eea01
xor edx, edx
mov esi, 1
cmp ecx, 1
mov ecx, dword [eax - 8]
setle dl
sub esi, dword [eax - 4]
add edx, 2
dec ecx
or ecx, esi
mov dword [esp + 0x28], edx
jge 0x4ee94e
push 1
lea ecx, [esp + 0x1c]
call fcn.00402590
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
cmp dword [eax - 8], 1
jge 0x4ee95e
push 0x80070057
call fcn.004027b0
xor ecx, ecx
mov dword [eax - 0xc], 1
mov word [eax + 2], cx
cmp dword [eax - 8], 1
jl 0x4ee159
push edx
mov dword [eax - 0xc], 1
mov word [eax + 2], cx
push ecx
lea ecx, [esp + 0x20]
call fcn.004efb40
xor esi, esi
cmp dword [esp + 0x24], esi
jle 0x4eeafd
xor ecx, ecx
mov dword [esp + 0x1c], ecx
lea ecx, [ecx]
cmp esi, dword [ebx + 0xb8]
jae 0x4ee159
mov eax, dword [ebx + 0xb4]
push dword [eax + ecx + 0x14]
lea eax, [esp + 0x1c]
push 0x58b3a0
push eax
call fcn.00443ea0
mov eax, dword [esp + 0x30]
inc esi
add esp, 0xc
cmp esi, eax
jge 0x4ee9e3
push 0x592a4c
lea ecx, [esp + 0x1c]
call fcn.00443fd0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
add ecx, 0x50
mov dword [esp + 0x1c], ecx
cmp esi, eax
jl 0x4ee9a0
jmp 0x4eeafd
cmp dword [ebx + 0x7c], 3
jne 0x4eeaed
mov ecx, dword [eax - 8]
mov esi, 1
sub esi, dword [eax - 4]
dec ecx
or ecx, esi
jge 0x4eea20
push 1
lea ecx, [esp + 0x1c]
call fcn.00402590
mov eax, dword [esp + 0x18]
cmp dword [eax - 8], 1
jge 0x4eea30
push 0x80070057
call fcn.004027b0
xor ecx, ecx
mov dword [eax - 0xc], 1
mov word [eax + 2], cx
cmp dword [eax - 8], 1
jl 0x4ee159
push 4
mov dword [eax - 0xc], 1
mov word [eax + 2], cx
push ecx
lea ecx, [esp + 0x20]
call fcn.004efb40
mov eax, dword [ebx + 0x40]
lea ecx, [esp + 0x18]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
cmp dword [ebx + 0xb8], 0
je 0x4eeafd
push 0x58dabc
lea ecx, [esp + 0x1c]
call fcn.00443fd0
cmp dword [ebx + 0xb8], 0
ja 0x4eea9c
push 0x80070057
call fcn.004027b0
mov ecx, dword [ebx + 0xb4]
lea eax, [esp + 0x28]
push eax
add ecx, 4
call fcn.00436c90
mov byte [esp + 0x880], 0x3b
lea ecx, [esp + 0x18]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0x3a
mov ecx, edi
mov edx, dword [esp + 0x28]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4eeafd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4eeafd
mov eax, dword [ebx + 0x40]
lea ecx, [esp + 0x18]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov eax, dword [esp + 0x18]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
mov dword [esp + 0x48], eax
mov ecx, eax
mov dword [esp + 0x58], esi
call fcn.004022c0
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x884], 0x3e
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0x888], 0x3a
call fcn.004eed20
mov byte [esp + 0x880], 0x3f
lea ecx, [esp + 0x14]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00443ec0
mov byte [esp + 0x880], 0x3a
mov ecx, edi
mov edx, dword [esp + 0x28]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4eeb75
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 1
push 0x58b3ec
lea ecx, [esp + 0x1c]
call fcn.00443ec0
mov esi, dword [esp + 0x14]
cmp dword [esi - 4], 1
mov eax, dword [esi - 0xc]
lea ebx, [eax + eax]
jle 0x4eeba3
push eax
lea ecx, [esp + 0x18]
call fcn.004024c0
mov esi, dword [esp + 0x14]
or ecx, 0xffffffff
xor edx, edx
test ebx, ebx
je 0x4eebc8
lea esp, [esp]
cmp ecx, 4
jl 0x4eebb9
xor ecx, ecx
jmp 0x4eebba
inc ecx
mov al, byte [ecx + 0x5898b8]
xor byte [edx + esi], al
inc edx
cmp edx, ebx
jb 0x4eebb0
push dword [esp + 0x50]
push 1
push ebx
push esi
call fcn.0052b6e4
push dword [esp + 0x60]
call fcn.0052c324
add esp, 0x14
xor ebx, ebx
mov byte [esp + 0x880], 0x21
mov ecx, edi
mov edx, dword [esp + 0x44]
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4eec05
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x880], 0xb
mov ecx, edi
mov edx, dword [esp + 0x34]
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4eec27
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x880], 4
add esi, 0xfffffff0
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4eec48
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x880], 3
mov ecx, edi
mov edx, dword [esp + 0x4c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4eec6d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x880], 2
mov ecx, edi
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4eec92
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x880], 1
mov ecx, edi
mov edx, dword [esp + 0x38]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4eecb7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 0x880], 0xffffffff
mov esi, dword [esp + 0x48]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x4eecdd
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [esp + 0x878]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x860]
xor ecx, esp
call fcn.005295e2
mov esp, ebp
pop ebp
ret 4