Function at 0x110f79e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x111e388e
mov eax, dword fs:[0]
push eax
mov eax, 0x11c0
call fcn.111d92c0
mov eax, dword [0x11279148]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
mov esi, ecx
mov ebx, dword [esi]
push eax
push esi
mov edi, edx
mov dword [ebp - 0x1140], ebx
mov dword [ebp - 0x1158], eax
mov dword [ebp - 0x114c], eax
call fcn.110f3a00
movzx eax, byte [edi + 6]
add esp, 8
cmp eax, 0x1e
ja case.0x110f6f5a.4
movzx eax, byte [eax + 0x110f8658]
jmp dword [eax*4 + 0x110f8624]
mov ebx, dword [ebx + 0x30]
push 0
push 0
push str.DisableFileTransfer
push str.Client
mov ecx, ebx
call fcn.110bbc00
test eax, eax
jne 0x110f8066
push eax
push eax
push str.NoFTWhenLoggedOff
push str.Client
mov ecx, ebx
call fcn.110bbc00
test eax, eax
je 0x110f6fb1
mov ecx, dword [0x1127b21c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
push 0
push 1
call eax
test eax, eax
je 0x110f8066
push 0x25
push edi
push 0x10651066
call fcn.110e3110
push 0x25
push edi
push 0x10651066
mov dword [esi + 0x380], eax
call fcn.110e3150
push 0x25
push edi
push 0x19391945
mov dword [esi + 0x384], eax
call fcn.110e3110
push 0x25
push edi
push 0x19391945
mov dword [esi + 0x388], eax
call fcn.110e3150
mov dword [esi + 0x38c], eax
lea eax, [edi + 0x22]
push 0x5c
push eax
call dword [sym.imp.MSVCR100.dll_strrchr]
add esp, 0x38
test eax, eax
je 0x110f7096
inc eax
mov dword [ebp - 0x1138], eax
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x110f7020
mov ecx, dword [ebp - 0x1138]
sub eax, edx
mov edx, dword [esi + 0x380]
mov ebx, eax
push ebx
push ecx
push edx
call fcn.110e3110
mov ecx, dword [esi + 0x384]
mov dword [esi + 0x380], eax
mov eax, dword [ebp - 0x1138]
push ebx
push eax
push ecx
call fcn.110e3150
mov edx, dword [ebp - 0x1138]
push ebx
mov dword [esi + 0x384], eax
mov eax, dword [esi + 0x388]
push edx
push eax
call fcn.110e3110
mov ecx, dword [ebp - 0x1138]
mov edx, dword [esi + 0x38c]
push ebx
push ecx
push edx
mov dword [esi + 0x388], eax
call fcn.110e3150
add esp, 0x30
mov dword [esi + 0x38c], eax
push esi
lea ecx, [ebp - 0x1134]
call fcn.110f02d0
push 1
lea eax, [ebp - 0x1148]
push eax
lea eax, [edi + 0x22]
push eax
lea ecx, [ebp - 0x1134]
mov dword [ebp - 4], 0
call fcn.110f1430
mov ebx, dword [ebp - 0x1148]
mov dword [ebp - 0x1138], eax
test ebx, ebx
jne 0x110f70e9
push 0x57
mov ecx, eax
push ecx
push esi
call fcn.110f3ff0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x110f71d3
lea ecx, [ebp - 0x1134]
mov dword [ebp - 4], 0xffffffff
call fcn.110f1420
test ebx, ebx
je 0x110f7108
push esi
call fcn.110f3ad0
add esp, 4
mov ecx, dword [edi + 2]
xor eax, eax
mov edx, ebx
neg edx
mov dword [ebp - 0xc90], eax
mov dword [ebp - 0xc8c], eax
sbb edx, edx
and edx, dword [ebp - 0x1158]
mov dword [ebp - 0xc88], eax
mov dword [ebp - 0xc7c], eax
mov dword [ebp - 0xc78], eax
mov dword [ebp - 0xc8e], ecx
mov ecx, dword [esi + 0x338]
mov dword [ebp - 0xc84], eax
mov dword [ebp - 0xc80], eax
mov dword [ebp - 0xc74], eax
mov dword [ebp - 0xc70], eax
mov byte [ebp - 0xc6c], al
mov eax, 0xe9
mov word [ebp - 0xc90], ax
mov byte [ebp - 0xc8a], 0
mov word [ebp - 0xc88], bx
mov dword [ebp - 0xc7a], edx
test ecx, ecx
je 0x110f719e
mov eax, dword [ecx + 8]
mov dword [ebp - 0xc82], eax
mov edx, dword [ecx + 0xc]
push 1
mov dword [ebp - 0xc7e], edx
call fcn.110f1710
xor eax, eax
mov dword [esi + 0x338], eax
cmp dword [ebp - 0x114c], eax
je 0x110f71b2
cmp ebx, eax
je 0x110f71b7
mov eax, 1
mov ecx, dword [ebp - 0x1140]
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
push eax
push 0x25
lea eax, [ebp - 0xc90]
push eax
call edx
jmp case.0x110f6f5a.4
mov eax, dword [ebp - 0x1138]
xor edx, edx
mov word [ebp - 0x218], dx
lea edx, [ebp - 0x420]
sub edx, eax
lea ebx, [ebx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x110f71f0
lea eax, [ebp - 0x420]
push 0x5c
push eax
call dword [sym.imp.MSVCR100.dll_wcsrchr]
add esp, 8
test eax, eax
je 0x110f7236
lea ebx, [eax + 2]
lea edx, [ebp - 0x218]
mov eax, ebx
sub edx, ebx
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x110f7222
xor ecx, ecx
mov word [ebx], cx
cmp dword [0x1127ad10], 0
mov byte [ebp - 0x1154], 0
mov dword [ebp - 0xcd0], 0x40
jne 0x110f728c
lea edx, [ebp - 0xcd0]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x110f728c
movzx eax, word [edi + 0x1a]
mov ecx, dword [ebp - 0xcbc]
mov ebx, dword [ebp - 0xcc0]
add eax, eax
shrd ebx, ecx, 0x14
cdq
shr ecx, 0x14
cmp ecx, edx
jb 0x110f728c
ja 0x110f7285
cmp ebx, eax
jbe 0x110f728c
mov byte [ebp - 0x1154], 1
xor ebx, ebx
cmp dword [esi + 0x2d4], ebx
je 0x110f72a8
lea eax, [ebp - 0x113c]
push eax
lea ecx, [esi + 0x2d8]
call fcn.11082650
push 0x250
lea ecx, [ebp - 0xf20]
push ebx
push ecx
mov dword [ebp - 0x116c], ebx
mov dword [ebp - 0x1148], ebx
call sub.MSVCR100.dll_memset
add esp, 0xc
cmp byte [edi + 0x20], bl
jne 0x110f734a
cmp byte [esi + 0x35c], bl
jne 0x110f734a
mov eax, dword [ebp - 0x1138]
lea edx, [ebp - 0xf20]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x1144], eax
cmp eax, 0xffffffff
je 0x110f734a
mov edx, dword [ebp - 0xf04]
xor ecx, ecx
or ecx, dword [ebp - 0xf00]
xor ebx, ebx
or edx, ebx
mov dword [ebp - 0x1148], 1
cmp ecx, dword [edi + 8]
jne 0x110f733b
cmp edx, dword [edi + 0xc]
jne 0x110f733b
mov ecx, dword [ebp - 0xf0c]
cmp ecx, dword [edi + 0x10]
jne 0x110f733b
mov edx, dword [ebp - 0xf08]
cmp edx, dword [edi + 0x14]
jne 0x110f733b
mov dword [ebp - 0x116c], 1
mov eax, dword [ebp - 0x1144]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
xor ebx, ebx
xor ecx, ecx
mov word [ebp - 0x628], cx
mov ecx, dword [ebp - 0x1140]
mov dword [esi + 0x360], ebx
mov dword [esi + 0x368], ebx
mov dword [esi + 0x36c], ebx
call fcn.110c2fa0
push eax
lea edx, [ebp - 0x420]
push edx
lea eax, [ebp - 0x628]
push str._sTEMPFILE.___._s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0x628]
call fcn.110f1360
lea ecx, [ebp - 0xf20]
push ecx
lea edx, [ebp - 0x628]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x1150], eax
cmp eax, 0xffffffff
je 0x110f75f8
mov eax, dword [ebp - 0xf04]
xor edx, edx
xor ebx, ebx
or ebx, dword [ebp - 0xf00]
or eax, edx
mov dword [ebp - 0x115c], eax
cmp eax, dword [edi + 0xc]
ja 0x110f75dc
jb 0x110f73e7
cmp ebx, dword [edi + 8]
jae 0x110f75dc
test byte [edi + 7], 1
je 0x110f75dc
mov ecx, dword [ebp - 0xf08]
mov dword [ebp - 0x1170], ecx
xor eax, eax
or eax, dword [ebp - 0xf0c]
xor ecx, ecx
mov ecx, dword [ebp - 0x1170]
or ecx, edx
cmp eax, dword [edi + 0x10]
jne 0x110f75dc
cmp ecx, dword [edi + 0x14]
jne 0x110f75dc
cmp dword [ebp - 0x115c], edx
ja 0x110f7435
cmp ebx, 0x100000
jb 0x110f75dc
mov eax, ebx
and eax, 0xfff
xor ecx, ecx
or eax, ecx
jne 0x110f75dc
push esi
call fcn.110f3ad0
mov ecx, dword [edi + 2]
mov edx, dword [ebp - 0x115c]
xor eax, eax
mov dword [ebp - 0xc68], eax
mov dword [ebp - 0xc64], eax
mov dword [ebp - 0xc60], eax
mov dword [ebp - 0xc5c], eax
add esp, 4
mov dword [ebp - 0xc58], eax
mov dword [ebp - 0xc54], eax
mov dword [ebp - 0xc50], eax
mov dword [ebp - 0xc4c], eax
mov dword [ebp - 0xc48], eax
mov byte [ebp - 0xc44], al
mov eax, 0xe9
mov dword [ebp - 0xc66], ecx
mov ecx, dword [ebp - 0x1140]
push 1
mov word [ebp - 0xc68], ax
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
mov dword [ebp - 0xc5c], edx
push 0x25
lea edx, [ebp - 0xc68]
push edx
mov byte [ebp - 0xc62], 0xf
mov dword [ebp - 0xc60], ebx
call eax
push 4
push 0x10000
push 0
push 0
lea ecx, [ebp - 0x628]
push ecx
lea ecx, [ebp - 0x11cc]
mov byte [esi + 0x35d], 1
call fcn.11036ab0
lea edx, [ebp - 0x1138]
xor ebx, ebx
push edx
lea ecx, [ebp - 0x11cc]
mov byte [ebp - 4], 1
mov dword [ebp - 0x1144], ebx
call fcn.11036350
test eax, eax
jle 0x110f75ad
lea ecx, [ecx]
xor ecx, ecx
mov dword [ebp - 0x115c], ecx
mov dword [ebp - 0x1170], ecx
cmp eax, 2
jl 0x110f7564
mov edx, dword [ebp - 0x1138]
movzx edx, byte [edx + ecx]
add dword [ebp - 0x115c], edx
mov edx, dword [ebp - 0x1138]
movzx edx, byte [edx + ecx + 1]
add dword [ebp - 0x1170], edx
add ecx, 2
lea edx, [eax - 1]
cmp ecx, edx
jl 0x110f7533
mov ebx, dword [ebp - 0x1144]
cmp ecx, eax
jge 0x110f7574
mov eax, dword [ebp - 0x1138]
movzx ecx, byte [ecx + eax]
add ebx, ecx
mov edx, dword [ebp - 0x1170]
add edx, dword [ebp - 0x115c]
lea ecx, [ebp - 0x11cc]
add ebx, edx
mov dword [ebp - 0x1144], ebx
call fcn.11036740
lea ecx, [ebp - 0x1138]
push ecx
lea ecx, [ebp - 0x11cc]
call fcn.11036350
test eax, eax
jg 0x110f7520
mov edx, dword [ebp - 0x118c]
mov eax, dword [ebp - 0x1188]
lea ecx, [ebp - 0x11cc]
mov dword [esi + 0x360], ebx
mov dword [esi + 0x368], edx
mov dword [esi + 0x36c], eax
mov byte [ebp - 4], 0
call fcn.11037020
jmp 0x110f75eb
lea ecx, [ebp - 0x628]
push ecx
call fcn.110f0510
add esp, 4
mov edx, dword [ebp - 0x1150]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebx, dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea ecx, [ebp - 0x830]
push ecx
xor eax, eax
push eax
push 0x11220570
lea edx, [ebp - 0x420]
push edx
mov dword [ebp - 0x1138], 0
mov word [ebp - 0x830], ax
call ebx
test eax, eax
jne 0x110f7656
push eax
lea ecx, [ebp - 0x1134]
call fcn.110f0370
lea eax, [ebp - 0x830]
push eax
push 0
push 0x11220570
lea ecx, [ebp - 0x420]
push ecx
call ebx
test eax, eax
je 0x110f7740
cmp dword [esi + 0x2d4], 0
je 0x110f7671
lea edx, [ebp - 0x1150]
push edx
lea ecx, [esi + 0x2d8]
call fcn.11082650
push 0x50
call fcn.111709c0
add esp, 4
mov dword [ebp - 0x1144], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x110f76a9
mov ecx, dword [ebp - 0x1154]
push 4
push 0x10000
push ecx
lea edx, [ebp - 0x830]
push edx
mov ecx, eax
call fcn.11035c30
mov ebx, eax
jmp 0x110f76ab
xor ebx, ebx
cmp dword [esi + 0x2d4], 0
mov byte [ebp - 4], 0
mov dword [ebp - 0x1138], ebx
je 0x110f76d0
mov eax, dword [ebp - 0x1150]
push eax
lea ecx, [esi + 0x2d8]
call fcn.11082690
cmp dword [ebx + 0xc], 0xffffffff
jne 0x110f774a
mov ecx, ebx
call fcn.11036430
push ebx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
push 0
lea ecx, [ebp - 0x1134]
call fcn.110f0370
push 0x50
call fcn.111709c0
add esp, 4
mov dword [ebp - 0x1144], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x110f7733
mov ecx, dword [ebp - 0x1154]
push 4
push 0x10000
push ecx
lea edx, [ebp - 0x830]
push edx
mov ecx, eax
call fcn.11035c30
mov byte [ebp - 4], 0
mov dword [ebp - 0x1138], eax
jmp 0x110f774a
xor eax, eax
mov byte [ebp - 4], al
mov dword [ebp - 0x1138], eax
jmp 0x110f774a
mov dword [ebp - 0x1158], 5
lea ecx, [ebp - 0x1134]
call fcn.110f02f0
cmp dword [esi + 0x2d4], 0
je 0x110f7770
mov eax, dword [ebp - 0x113c]
push eax
lea ecx, [esi + 0x2d8]
call fcn.11082690
mov eax, dword [ebp - 0x1138]
test eax, eax
je 0x110f79ca
mov eax, dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x110f79ca
lea ebx, [edi + 0x10]
push ebx
push ebx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_SetFileTime]
cmp dword [esi + 0x338], 0
je 0x110f77b7
push 0xf46
push str.FILEIO.CPP
push str.idata__pCurrentFile__NULL
call fcn.11067750
add esp, 0xc
push 0x48
call fcn.111709c0
add esp, 4
test eax, eax
je 0x110f77f4
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
push ecx
movzx ecx, word [edi + 0x18]
push edx
push ecx
lea edx, [ebp - 0x218]
push edx
mov edx, dword [ebp - 0x1138]
lea ecx, [ebp - 0x830]
push ecx
mov ecx, dword [edi + 2]
push edx
push ecx
push esi
mov ecx, eax
call fcn.110f0260
jmp 0x110f77f6
xor eax, eax
cmp dword [ebp - 0x116c], 0
mov dword [esi + 0x338], eax
je 0x110f78cb
test byte [edi + 7], 2
je 0x110f78cb
push esi
call fcn.110f3ad0
mov ecx, dword [ebp - 0x1140]
xor eax, eax
mov dword [ebp - 0xc68], eax
mov dword [ebp - 0xc64], eax
add esp, 4
mov dword [ebp - 0xc60], eax
mov dword [ebp - 0xc5c], eax
mov dword [ebp - 0xc58], eax
mov dword [ebp - 0xc54], eax
mov dword [ebp - 0xc50], eax
mov dword [ebp - 0xc4c], eax
mov dword [ebp - 0xc48], eax
mov byte [ebp - 0xc44], al
mov eax, dword [edi + 2]
mov edx, 0xe9
push 1
mov word [ebp - 0xc68], dx
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
mov dword [ebp - 0xc66], eax
push 0x25
lea eax, [ebp - 0xc68]
push eax
mov byte [ebp - 0xc62], 0xe
call edx
mov ecx, dword [esi + 0x338]
call fcn.110f11d0
mov ecx, dword [esi + 0x338]
test ecx, ecx
je 0x110f78aa
push 1
call fcn.110f1710
lea ecx, [ebp - 0x1134]
mov dword [esi + 0x338], 0
mov dword [ebp - 4], 0xffffffff
call fcn.110f1420
jmp case.0x110f6f5a.4
cmp dword [ebp - 0x1148], 0
je 0x110f79a1
push esi
call fcn.110f3ad0
mov dx, word [ebp - 0xf20]
mov ecx, dword [edi + 2]
xor eax, eax
mov dword [ebp - 0xc68], eax
mov dword [ebp - 0xc64], eax
mov dword [ebp - 0xc60], eax
mov dword [ebp - 0xc5c], eax
mov dword [ebp - 0xc58], eax
mov dword [ebp - 0xc54], eax
mov dword [ebp - 0xc50], eax
mov dword [ebp - 0xc4c], eax
mov dword [ebp - 0xc48], eax
mov byte [ebp - 0xc44], al
mov word [ebp - 0xc60], dx
mov eax, 0xe9
mov word [ebp - 0xc68], ax
mov eax, dword [ebp - 0xf0c]
add esp, 4
xor edx, edx
mov dword [ebp - 0xc5e], eax
mov eax, dword [ebp - 0xf04]
xor edi, edi
add edx, dword [ebp - 0xf00]
mov dword [ebp - 0xc66], ecx
mov ecx, dword [ebp - 0xf08]
adc eax, edi
mov dword [ebp - 0xc5a], ecx
mov ecx, dword [ebp - 0x1140]
push 1
mov dword [ebp - 0xc56], edx
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
mov dword [ebp - 0xc52], eax
push 0x25
lea eax, [ebp - 0xc68]
push eax
mov byte [ebp - 0xc62], 0xb
call edx
mov eax, dword [esi + 0x338]
mov byte [eax + 0x12], 1
mov ecx, dword [ebp + 8]
mov esi, dword [esi + 0x338]
mov dword [esi + 0x18], ecx
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x1134]
mov dword [esi + 0x1c], edx
mov dword [ebp - 4], 0xffffffff
call fcn.110f1420
jmp case.0x110f6f5a.4
or ebx, 0xffffffff
lea ecx, [ebp - 0x1134]
mov dword [ebp - 4], ebx
call fcn.110f1420
jmp 0x110f70ff
mov eax, dword [esi + 0x338]
test eax, eax
je case.0x110f6f5a.4
mov ebx, dword [eax]
test ebx, ebx
je case.0x110f6f5a.4
test byte [edi + 7], 8
je 0x110f7a49
mov ecx, dword [edi + 8]
add ecx, 3
shr ecx, 2
lea eax, [edi + 0xc]
test ecx, ecx
je 0x110f7a49
dec ecx
shr ecx, 2
inc ecx
jmp 0x110f7a20
mov edx, dword [esi + 0x380]
xor dword [eax], edx
mov edx, dword [esi + 0x384]
xor dword [eax + 4], edx
mov edx, dword [esi + 0x388]
xor dword [eax + 8], edx
mov edx, dword [esi + 0x38c]
xor dword [eax + 0xc], edx
add eax, 0x10
dec ecx
jne 0x110f7a20
mov eax, dword [edi + 8]
push eax
lea ecx, [edi + 0xc]
push ecx
mov ecx, ebx
call fcn.11035e00
mov dword [ebp - 0x113c], eax
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x110f7a9b
mov ecx, dword [esi + 0x338]
mov dword [ebp - 0x1158], eax
call fcn.110f11d0
mov ecx, dword [esi + 0x338]
test ecx, ecx
je 0x110f7a87
push 1
call fcn.110f1710
mov dword [esi + 0x338], 0
mov ebx, 0x1004
jmp 0x110f70ff
mov ecx, dword [edi + 8]
mov ebx, dword [esi + 0x338]
xor eax, eax
mov dword [ebp - 0xc68], eax
mov dword [ebp - 0xc64], eax
mov dword [ebp - 0xc60], eax
mov dword [ebp - 0xc5c], eax
mov dword [ebp - 0xc58], eax
mov dword [ebp - 0xc54], eax
mov dword [ebp - 0xc50], eax
mov dword [ebp - 0xc4c], eax
mov dword [ebp - 0xc48], eax
mov byte [ebp - 0xc44], al
mov eax, dword [edi + 2]
mov edx, 0xe9
mov word [ebp - 0xc68], dx
mov dl, byte [edi + 7]
mov dword [ebp - 0xc66], eax
mov eax, dword [ebp + 8]
and dl, 4
or byte [ebp - 0xc61], dl
mov dword [ebp - 0xc5e], ecx
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 0xc62], 0
sub eax, dword [ebx + 0x18]
push 0
sbb ecx, dword [ebx + 0x1c]
push 0xf4240
push ecx
push eax
call fcn.111d92f0
mov ecx, dword [0x1127c7e4]
push ecx
mov ecx, dword [0x1127c7e0]
push ecx
push edx
push eax
call fcn.111d9040
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc4e], eax
mov dword [ebx + 0x18], edx
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x1c], eax
test byte [edi + 7], 4
jne 0x110f7b6a
mov eax, dword [esi + 0x338]
mov ecx, dword [ebp - 0x113c]
add dword [eax + 8], ecx
adc dword [eax + 0xc], 0
cmp byte [esi + 0x34b], 0
mov eax, dword [esi + 0x338]
mov edx, dword [eax + 8]
mov dword [ebp - 0xc5a], edx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc56], eax
je 0x110f7b9a
mov ecx, dword [esi + 0x34c]
cmp ecx, dword [edi + 8]
ja 0x110f7b9a
xor eax, eax
jmp 0x110f7b9f
mov eax, 1
mov ecx, dword [ebp - 0x1140]
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
push eax
push 0x25
lea eax, [ebp - 0xc68]
push eax
call edx
mov eax, dword [esi + 0x34c]
mov byte [esi + 0x34b], 1
mov edi, dword [edi + 8]
cmp eax, edi
ja 0x110f7bcc
mov eax, edi
mov dword [esi + 0x34c], eax
jmp case.0x110f6f5a.4
mov eax, dword [esi + 0x338]
test eax, eax
je case.0x110f6f5a.4
cmp dword [eax], 0
je 0x110f7c01
push 0xfbc
push str.FILEIO.CPP
push str.idata__pCurrentFile__m_pffwNULL
call fcn.11067750
add esp, 0xc
mov eax, dword [esi + 0x338]
mov eax, dword [eax + 0x24]
push eax
lea ecx, [ebp - 0x1168]
call fcn.1113ccd0
mov ecx, ebx
mov dword [ebp - 4], 4
call fcn.110c7040
push eax
push 0x208
lea ecx, [ebp - 0x218]
push ecx
add edi, 0x10
push edi
call fcn.111bb8a0
add esp, 0x10
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x1168]
call fcn.1113dca0
push 0x50
call fcn.111709c0
mov edi, eax
add esp, 4
mov dword [ebp - 0x113c], edi
mov byte [ebp - 4], 5
test edi, edi
je 0x110f7c87
push 4
push 0x10000
push 0
lea ecx, [ebp - 0x1168]
call fcn.1102f630
push eax
mov ecx, edi
call fcn.11035c30
jmp 0x110f7c89
xor eax, eax
mov ecx, dword [esi + 0x338]
mov dword [ecx], eax
mov edx, dword [esi + 0x338]
mov eax, dword [edx]
mov eax, dword [eax + 0xc]
mov byte [ebp - 4], 4
cmp eax, 0xffffffff
jne 0x110f7d4d
push esi
lea ecx, [ebp - 0x1134]
call fcn.110f02d0
lea ecx, [ebp - 0x1168]
mov byte [ebp - 4], 6
call fcn.1102f630
push eax
lea ecx, [ebp - 0x1134]
call fcn.110f0370
test eax, eax
je 0x110f7d3e
mov ecx, dword [esi + 0x338]
mov edi, dword [ecx]
test edi, edi
je 0x110f7cf0
mov ecx, edi
call fcn.11036430
push edi
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
mov edx, dword [esi + 0x338]
push 0x50
mov dword [edx], 0
call fcn.111709c0
mov edi, eax
add esp, 4
mov dword [ebp - 0x113c], edi
mov byte [ebp - 4], 7
test edi, edi
je 0x110f7d34
push 4
push 0x10000
push 0
lea ecx, [ebp - 0x1168]
call fcn.1102f630
push eax
mov ecx, edi
call fcn.11035c30
jmp 0x110f7d36
xor eax, eax
mov ecx, dword [esi + 0x338]
mov dword [ecx], eax
lea ecx, [ebp - 0x1134]
mov byte [ebp - 4], 4
call fcn.110f1420
mov edx, dword [esi + 0x338]
mov edi, dword [edx]
cmp dword [edi + 0x24], 0x7b
jne 0x110f7d7b
test edi, edi
je 0x110f7d6f
mov ecx, edi
call fcn.11036430
push edi
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esi + 0x338]
mov dword [eax], 0
lea ecx, [ebp - 0x1168]
mov dword [ebp - 4], 0xffffffff
call fcn.1113cd80
jmp case.0x110f6f5a.4
mov ecx, dword [esi + 0x338]
test ecx, ecx
je case.0x110f6f5a.4
push 0x104
lea edx, [ebp - 0x218]
push edx
call fcn.110f12e0
mov ecx, dword [ebp - 0x1140]
mov ebx, eax
call fcn.110c2fa0
push eax
push str.TEMPFILE.___._s
push ebx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
mov eax, ebx
call fcn.110f1360
mov ebx, dword [esi + 0x338]
mov ecx, dword [ebx + 0x24]
lea edx, [ebp - 0x420]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x110f7de4
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x218]
mov dword [ebp - 0x1148], eax
cmp ecx, dword [esi + 0x360]
jne 0x110f7f14
cmp dword [ebx], 0
je 0x110f7f14
mov ebx, dword [ebx]
mov edx, dword [esi + 0x36c]
cmp edx, dword [ebx + 0x1c]
jb 0x110f7f14
ja 0x110f7e3b
mov eax, dword [esi + 0x368]
cmp eax, dword [ebx + 0x18]
jbe 0x110f7f14
push esi
call fcn.110f3ad0
mov edx, dword [edi + 2]
xor eax, eax
mov dword [ebp - 0xc68], eax
mov ecx, 0xe9
mov dword [ebp - 0xc64], eax
mov word [ebp - 0xc68], cx
mov ecx, dword [esi + 0x36c]
add esp, 4
mov dword [ebp - 0xc60], eax
mov dword [ebp - 0xc5c], eax
mov dword [ebp - 0xc58], eax
mov dword [ebp - 0xc54], eax
mov dword [ebp - 0xc50], eax
mov dword [ebp - 0xc4c], eax
mov dword [ebp - 0xc48], eax
mov byte [ebp - 0xc44], al
mov eax, dword [esi + 0x368]
mov dword [ebp - 0xc5c], ecx
mov ecx, dword [ebp - 0x1140]
push 1
mov dword [ebp - 0xc66], edx
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
mov dword [ebp - 0xc60], eax
push 0x25
lea eax, [ebp - 0xc68]
push eax
mov byte [ebp - 0xc62], 0x11
call edx
mov eax, dword [esi + 0x338]
mov edi, dword [eax]
test edi, edi
je 0x110f7eea
mov ecx, edi
call fcn.11036430
push edi
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [esi + 0x338]
lea edx, [ebp - 0x218]
mov dword [ecx], 0
mov ecx, dword [esi + 0x338]
push edx
call fcn.110f1330
lea eax, [ebp - 0x420]
mov dword [ebp - 0x1148], eax
cmp dword [esi + 0x2d4], 0
je 0x110f7f2f
lea ecx, [ebp - 0x113c]
push ecx
lea ecx, [esi + 0x2d8]
call fcn.11082650
mov edx, dword [ebp - 0x1148]
push edx
call fcn.110f0510
add esp, 4
cmp dword [esi + 0x2d4], 0
je case.0x110f6f5a.4
mov eax, dword [ebp - 0x113c]
push eax
lea ecx, [esi + 0x2d8]
call fcn.11082690
jmp case.0x110f6f5a.4
cmp dword [esi + 0x338], 0
je case.0x110f6f5a.4
push 0x50
call fcn.111709c0
add esp, 4
mov dword [ebp - 0x113c], eax
mov dword [ebp - 4], 8
test eax, eax
je 0x110f7fa6
mov ecx, dword [esi + 0x338]
mov edx, dword [ecx + 0x24]
push 4
push 0x10000
push 0
push edx
mov ecx, eax
call fcn.11035c30
jmp 0x110f7fa8
xor eax, eax
mov edx, dword [esi + 0x338]
mov dword [edx], eax
mov eax, dword [esi + 0x36c]
mov ecx, dword [esi + 0x368]
mov edx, dword [esi + 0x338]
push eax
push ecx
mov ecx, dword [edx]
mov dword [ebp - 4], 0xffffffff
call fcn.11035dd0
mov eax, dword [esi + 0x338]
mov ecx, dword [esi + 0x368]
mov dword [eax + 8], ecx
mov edx, dword [esi + 0x36c]
mov dword [eax + 0xc], edx
jmp case.0x110f6f5a.4
movzx eax, byte [edi + 0x22]
test eax, eax
setne cl
mov dword [ebp - 0x114c], eax
mov byte [esi + 0x35e], cl
test eax, eax
jne 0x110f800e
mov byte [esi + 0x35c], al
mov eax, dword [esi + 0x338]
lea ebx, [esi + 0x338]
test eax, eax
je case.0x110f6f5a.4
cmp dword [eax], 0
je 0x110f8085
mov edx, dword [eax]
mov eax, dword [edx + 0xc]
lea ecx, [edi + 0x1a]
push ecx
lea edx, [edi + 0x12]
push edx
lea ecx, [edi + 0xa]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFileTime]
mov edx, dword [ebx]
mov ecx, dword [edx]
call fcn.11036000
test eax, eax
jne 0x110f806e
mov ecx, dword [ebx]
call fcn.110f11d0
mov ecx, dword [ebx]
test ecx, ecx
je 0x110f8060
push 1
call fcn.110f1710
mov dword [ebx], 0
or ebx, 0xffffffff
jmp 0x110f70ff
cmp byte [edi + 0x23], 0
je 0x110f808b
mov eax, dword [ebx]
mov ecx, dword [eax]
call fcn.11036120
mov ecx, dword [ebx]
mov dword [ecx], 0
cmp byte [edi + 0x23], 0
jne 0x110f80fd
cmp dword [esi + 0x378], 0
jne 0x110f80c7
push 0x18
call fcn.111709c0
add esp, 4
mov dword [ebp - 0x113c], eax
mov dword [ebp - 4], 9
test eax, eax
je 0x110f80b8
mov ecx, eax
call fcn.110f30e0
jmp 0x110f80ba
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x378], eax
cmp dword [esi + 0x37c], 0
jne 0x110f80e4
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esi + 0x37c], eax
mov ecx, dword [ebx]
call fcn.110f2510
mov ecx, dword [esi + 0x378]
push ebx
call fcn.110f2bf0
mov dword [ebx], 0
cmp dword [ebp - 0x114c], 0
jne case.0x110f6f5a.4
push 1
push esi
call fcn.110f3a00
add esp, 8
jmp case.0x110f6f5a.4
mov ecx, dword [esi + 0x338]
test ecx, ecx
je 0x110f8157
cmp dword [ecx], 0
je 0x110f8157
cmp byte [edi + 8], 0
jne 0x110f8137
mov edx, dword [ecx + 4]
cmp edx, dword [edi + 2]
jne 0x110f8157
call fcn.110f11d0
mov ecx, dword [esi + 0x338]
test ecx, ecx
je 0x110f814d
push 1
call fcn.110f1710
mov dword [esi + 0x338], 0
cmp byte [edi + 8], 0
jne 0x110f81b0
mov ebx, dword [esi + 0x374]
mov eax, dword [edi + 2]
mov dword [esi + 0x350], eax
test ebx, ebx
je 0x110f81aa
cmp dword [ebx + 0x10], 0
je 0x110f81aa
mov ecx, ebx
call fcn.110f2ca0
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x113c], eax
cmp ecx, dword [edi + 2]
jne 0x110f81aa
mov ecx, ebx
call fcn.110f2bc0
mov ebx, dword [ebp - 0x113c]
mov ecx, ebx
call fcn.110f11d0
push 1
mov ecx, ebx
call fcn.110f1710
cmp byte [edi + 8], 0
je 0x110f822f
mov eax, dword [esi + 0x374]
mov dword [esi + 0x350], 0
mov byte [esi + 0x34a], 1
test eax, eax
je 0x110f822f
cmp dword [eax + 0x10], 0
je 0x110f822f
mov ebx, dword [esi + 0x374]
mov ecx, ebx
call fcn.110f2ca0
mov edi, dword [eax]
mov ecx, ebx
call fcn.110f2bc0
mov ecx, edi
call fcn.110f11d0
test edi, edi
je 0x110f8223
mov ebx, dword [edi]
test ebx, ebx
je 0x110f8208
mov ecx, ebx
call fcn.11036430
push ebx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
mov edx, dword [edi + 0x24]
mov ebx, dword [sym.imp.MSVCR100.dll_free]
push edx
call ebx
mov eax, dword [edi + 0x28]
push eax
call ebx
push edi
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 0xc
mov ecx, dword [esi + 0x374]
cmp dword [ecx + 0x10], 0
jne 0x110f81d1
mov byte [esi + 0x349], 0
mov byte [esi + 0x35c], 0
jmp case.0x110f6f5a.4
mov edx, dword [esi + 0x370]
push edx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov byte [esi + 0x349], 1
jmp case.0x110f6f5a.4
mov eax, dword [esi + 0x370]
push eax
mov byte [esi + 0x349], 0
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp case.0x110f6f5a.4
cmp byte [edi + 8], 0
je 0x110f8281
mov byte [esi + 0x35c], 1
mov ebx, dword [esi + 0x374]
test ebx, ebx
je 0x110f841f
cmp dword [ebx + 0x10], 0
je 0x110f841f
mov ecx, ebx
call fcn.110f2ca0
mov ecx, dword [eax]
mov dword [ebp - 0x114c], ecx
mov ecx, ebx
call fcn.110f2bc0
mov ecx, dword [ebp - 0x114c]
push 0
call fcn.110f21f0
cmp dword [ebp - 0x114c], 0
mov ebx, eax
je 0x110f82d4
mov ecx, dword [ebp - 0x114c]
push 1
call fcn.110f1710
xor eax, eax
mov ecx, ebx
neg ecx
mov dword [ebp - 0xc68], eax
mov dword [ebp - 0xc64], eax
mov dword [ebp - 0xc58], eax
sbb ecx, ecx
mov dword [ebp - 0xc60], eax
mov dword [ebp - 0xc5c], eax
mov dword [ebp - 0xc54], eax
mov dword [ebp - 0xc50], eax
mov dword [ebp - 0xc4c], eax
mov dword [ebp - 0xc48], eax
mov byte [ebp - 0xc44], al
mov eax, dword [edi + 2]
and ecx, 0xffff0001
mov dword [ebp - 0xc66], eax
or eax, 0xffffffff
add ecx, 0xffff
mov edx, 0xe9
mov word [ebp - 0xc68], dx
mov byte [ebp - 0xc62], 0
mov word [ebp - 0xc60], cx
mov dword [ebp - 0xc5a], eax
mov dword [ebp - 0xc56], eax
test ebx, ebx
jne 0x110f8372
mov edx, 0x1007
mov word [ebp - 0xc60], dx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xc52], eax
mov ecx, dword [ebp - 0x1140]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
push 0
push 0x25
lea edx, [ebp - 0xc68]
push edx
call eax
cmp byte [edi + 8], 0
je case.0x110f6f5a.4
mov ecx, dword [esi + 0x374]
cmp dword [ecx + 0x10], 0
je case.0x110f6f5a.4
jmp 0x110f83b0
mov ebx, dword [esi + 0x374]
mov ecx, ebx
call fcn.110f2ca0
mov edi, dword [eax]
mov ecx, ebx
call fcn.110f2bc0
push 0
mov ecx, edi
call fcn.110f21f0
mov ecx, dword [ebp - 0x1140]
neg eax
sbb eax, eax
and eax, 0xffff0001
add eax, 0xffff
mov word [ebp - 0xc60], ax
mov edx, dword [edi + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
push 0
mov dword [ebp - 0xc66], edx
push 0x25
lea edx, [ebp - 0xc68]
push edx
call eax
push 1
mov ecx, edi
call fcn.110f1710
mov ecx, dword [esi + 0x374]
cmp dword [ecx + 0x10], 0
jne 0x110f83b0
jmp case.0x110f6f5a.4
mov esi, dword [esi + 0x338]
test esi, esi
je case.0x110f6f5a.4
mov byte [esi + 0x12], 0
jmp case.0x110f6f5a.4
mov eax, dword [edi + 0x1a]
test eax, eax
je case.0x110f6f5a.4
mov edi, dword [edi + 0xa]
test edi, edi
je case.0x110f6f5a.4
push eax
push 0xf4240
push edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.rawspeedOut_uKB_s_n
mov dword [esi + 0x358], ecx
call fcn.111bd7b0
add esp, 8
jmp case.0x110f6f5a.4
cmp dword [esi + 0x33c], 0
jne 0x110f8513
mov ebx, dword [sym.imp.KERNEL32.dll_CreateEventW]
push 0
push 0
push 0
push 0
call ebx
push 4
mov dword [esi + 0x344], eax
call fcn.111709c0
add esp, 4
mov dword [ebp - 0x113c], eax
mov dword [ebp - 4], 0xa
test eax, eax
je 0x110f84d5
mov ecx, dword [esi + 0x344]
push ecx
push 1
mov ecx, eax
call fcn.111712f0
jmp 0x110f84d7
xor eax, eax
push 0
push 0
push 0
push 0
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x340], eax
call ebx
lea edx, [ebp - 0x1150]
push edx
push 0
push esi
push 0x110f5d30
push 0
push 0
mov dword [esi + 0x370], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x33c], eax
mov ecx, dword [ebp - 0x1140]
lea ebx, [edi + 0x24]
call fcn.110c7040
mov dword [ebp - 0x113c], eax
lea eax, [ebp - 0x1148]
push eax
lea ecx, [ebp - 0xc40]
push ecx
push ebx
push esi
call fcn.110f0ed0
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x110f8544
sub eax, edx
mov edx, dword [ebp - 0x113c]
push edx
push 0x208
lea ecx, [ebp - 0xa38]
push ecx
lea edx, [ebx + eax + 1]
push edx
call fcn.111bb8a0
mov al, byte [edi + 0x23]
add esp, 0x10
test al, al
je 0x110f857e
movzx eax, al
lea eax, [eax + eax*4]
add eax, eax
jmp 0x110f8583
mov eax, 0xffff
push 0x38
mov dword [esi + 0x354], eax
call fcn.111709c0
add esp, 4
mov dword [ebp - 0x113c], eax
test eax, eax
je 0x110f85f1
movzx eax, byte [edi + 7]
movzx ecx, byte [edi + 0x22]
mov edx, dword [edi + 0x18]
push eax
movzx eax, word [edi + 0x20]
push ecx
push edx
cdq
xor ebx, ebx
or eax, ebx
push eax
movzx eax, word [edi + 0x16]
xor ecx, ecx
or ecx, dword [edi + 0x1c]
cdq
push ecx
xor ecx, ecx
or ecx, dword [edi + 0x12]
or eax, ebx
push eax
movzx eax, word [edi + 8]
push ecx
push eax
lea ecx, [edi + 0xa]
push ecx
mov ecx, dword [edi + 2]
lea edx, [ebp - 0xa38]
push edx
lea eax, [ebp - 0xc40]
push eax
push ecx
mov ecx, dword [ebp - 0x113c]
call fcn.110f01c0
jmp 0x110f85f3
xor eax, eax
mov ecx, dword [esi + 0x340]
push eax
mov byte [esi + 0x34a], 0
call fcn.11170f60
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.111d9022
mov esp, ebp
pop ebp
ret