Function at 0x4110cf
Capabilities:
Authenticate hmac
Enumerate files on windows
Get file size
Set thread local storage value

Disassembly:
add bl, ch
pop es
mov dword [ebp - 0x5c], 0
cmp dword [ebp - 0x5c], 0
je 0x4110e8
mov dword [ebp - 0x60], 1
jmp 0x4110ef
mov dword [ebp - 0x60], 0
cmp dword [ebp - 0x60], 0
je 0x41112c
mov ecx, dword [0x41c0c4]
imul ecx, dword [0x41c0bc]
mov edx, dword [ebp - 4]
imul edx, dword [ebp - 0x3c]
cmp ecx, edx
jne 0x411116
mov dword [ebp - 0x64], 1
jmp 0x41111d
mov dword [ebp - 0x64], 0
cmp dword [ebp - 0x64], 0
je 0x41112c
mov dword [ebp - 0x68], 1
jmp 0x411133
mov dword [ebp - 0x68], 0
cmp dword [ebp - 0x68], 0
je 0x41118a
mov eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x10]
test eax, eax
je 0x411158
mov ecx, dword [ebp - 0x10]
imul ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x411158
mov dword [ebp - 0x6c], 1
jmp 0x41115f
mov dword [ebp - 0x6c], 0
cmp dword [ebp - 0x6c], 0
je 0x41118a
mov dword [ebp - 0xd8], 0x48
mov dword [ebp - 0xdc], 0xd2
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov dword [0x41c128], eax
jmp 0x4111ee
mov dword [ebp - 0xe0], 0xc7
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe8], 0x89
mov dword [ebp - 0xec], 0x5d
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xf0], 0x86
mov dword [ebp - 0xbc], 0
mov eax, dword [ebp - 0xbc]
or eax, dword [ebp - 0xc0]
mov dword [ebp - 0xc4], eax
jmp 0x411207
mov ecx, dword [0x41c12c]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.GDI32.dll_SetArcDirection]
mov dword [ebp - 0x1c], eax
jmp 0x410f26
mov eax, dword [ebp - 4]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x411299
cmp dword [ebp - 0x34], 0x36
je 0x41122b
cmp dword [ebp - 0x34], 0xc6
je 0x411267
jmp 0x4112d8
mov ecx, dword [ebp - 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 8]
imul edx, dword [0x41c0cc]
mov dword [0x41c0bc], edx
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [0x41c0cc]
push ecx
mov edx, dword [ebp - 0x70]
push edx
call dword [sym.imp.GDI32.dll_PolylineTo]
mov dword [0x41c0d8], eax
jmp 0x41130a
mov dword [ebp - 0xf4], 0xc4
mov dword [ebp - 0xc8], 2
mov dword [ebp - 0xf8], 0xfc
mov eax, dword [ebp - 0xc8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileType]
mov dword [0x41c0cc], eax
jmp 0x41130a
mov dword [ebp - 0xfc], 0x54
mov dword [ebp - 0x74], 0xf2
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0x104], 0
mov eax, dword [ebp - 0xcc]
xor edx, edx
div dword [ebp - 0x74]
mov dword [ebp - 0x74], eax
jmp 0x41130a
mov dword [ebp - 0x108], 0x42
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp - 4]
mov dword [0x41c0d0], ecx
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [0x41c12c]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0x18
jmp 0x41131c
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x3d
jae 0x4114f2
mov dword [ebp - 0x10c], 0x73
mov dword [ebp - 0x38], 0xd5
mov dword [ebp - 0x110], 0xb4
mov dword [ebp - 0x14], 0
mov ecx, dword [0x41c120]
sub ecx, dword [0x41c0c0]
je 0x41136a
mov edx, dword [str.p4vH_]
or edx, dword [ebp - 0x14]
je 0x41136a
mov dword [ebp - 0x78], 1
jmp 0x411371
mov dword [ebp - 0x78], 0
cmp dword [ebp - 0x78], 0
je 0x4113ab
mov eax, dword [ebp - 0x38]
imul eax, dword [ebp - 0x20]
mov ecx, dword [0x41c11c]
imul ecx, dword [ebp - 0x20]
cmp eax, ecx
je 0x411395
mov dword [ebp - 0x7c], 1
jmp 0x41139c
mov dword [ebp - 0x7c], 0
cmp dword [ebp - 0x7c], 0
je 0x4113ab
mov dword [ebp - 0x80], 1
jmp 0x4113b2
mov dword [ebp - 0x80], 0
cmp dword [ebp - 0x80], 0
je 0x4113f9
mov edx, dword [0x41c0d4]
imul edx, dword [ebp - 0xc]
mov eax, dword [0x41c0c8]
and eax, dword [ebp - 8]
cmp edx, eax
jbe 0x4113da
mov dword [ebp - 0x84], 1
jmp 0x4113e4
mov dword [ebp - 0x84], 0
cmp dword [ebp - 0x84], 0
je 0x4113f9
mov dword [ebp - 0x88], 1
jmp 0x411403
mov dword [ebp - 0x88], 0
cmp dword [ebp - 0x88], 0
je 0x41144a
mov ecx, dword [0x41c128]
add ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x24]
and edx, dword [ebp - 0x14]
cmp ecx, edx
je 0x41142b
mov dword [ebp - 0x8c], 1
jmp 0x411435
mov dword [ebp - 0x8c], 0
cmp dword [ebp - 0x8c], 0
je 0x41144a
mov dword [ebp - 0x90], 1
jmp 0x411454
mov dword [ebp - 0x90], 0
cmp dword [ebp - 0x90], 0
je 0x4114b3
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
xor ecx, dword [ebp - 0x14]
cmp eax, ecx
jae 0x41147a
mov dword [ebp - 0x94], 1
jmp 0x411484
mov dword [ebp - 0x94], 0
cmp dword [ebp - 0x94], 0
je 0x4114b3
mov edx, dword [0x41c0d0]
push edx
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [0x41c118]
push ecx
mov edx, dword [0x41c118]
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [0x41c11c], eax
jmp 0x4114ed
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x118], 0
mov eax, dword [ebp - 0x98]
xor eax, dword [ebp - 0xd0]
mov dword [ebp - 0x98], eax
jmp 0x411313
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x9c], ecx
cmp dword [ebp - 0x9c], 0x5c
je 0x411512
cmp dword [ebp - 0x9c], 0xe9
je 0x411562
jmp 0x41157d
mov dword [ebp - 0x11c], 0x57
mov dword [ebp - 0xd4], 0xb3
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [0x41c128]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 8], eax
mov ecx, dword [0x41c120]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileType]
mov dword [ebp - 0x3c], eax
mov edx, dword [0x41c0d0]
mov dword [0x41c130], edx
mov eax, dword [0x41c130]
mov dword [ebp - 0xd4], eax
jmp 0x4115d9
mov dword [ebp - 0x120], 0xca
mov ecx, dword [0x41c134]
and ecx, dword [ebp - 0xc]
mov dword [0x41c12c], ecx
jmp 0x4115d9
mov dword [ebp - 0x40], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0xa8], 0
mov edx, dword [ebp - 0xa4]
sub edx, dword [ebp - 0xa0]
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0xa4]
xor eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0xa8]
xor ecx, dword [ebp - 0x40]
mov dword [ebp - 0xa8], ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0xac], edx
cmp dword [ebp - 0xac], 0xb7
ja case.0x4115ff.1
mov eax, dword [ebp - 0xac]
movzx ecx, byte [eax + 0x41173b]
jmp dword [ecx*4 + 0x411723]
mov dword [ebp - 0x128], 0x74
mov eax, dword [0x41c0bc]
xor edx, edx
div dword [ebp - 0x12c]
mov dword [0x41c0d0], eax
mov edx, dword [0x41c0c0]
mov dword [0x41c0bc], edx
mov eax, dword [0x41c0bc]
mov dword [0x41c0c8], eax
jmp 0x411718
mov ecx, dword [0x41c134]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileType]
mov dword [ebp - 0x18], eax
mov edx, dword [0x41c0bc]
push edx
mov eax, dword [0x41c0c0]
push eax
call dword [sym.imp.GDI32.dll_SetArcDirection]
mov dword [0x41c0c8], eax
mov ecx, dword [0x41c0d4]
and ecx, dword [0x41c0d4]
mov dword [ebp - 0x44], ecx
jmp 0x411718
mov dword [ebp - 0xb0], 0x5d
mov dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0x2c]
xor edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
mov eax, dword [0x41c11c]
mov ecx, dword [0x41c12c]
lea edx, [ecx + eax + 0x324]
push edx
call fcn.0040758c
add esp, 4
mov eax, dword [ebp - 0xb0]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0xb0], eax
jmp 0x411718
mov ecx, dword [0x41c0cc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileType]
mov dword [ebp - 0x18], eax
jmp 0x411718
mov edx, dword [ebp - 8]
or edx, dword [0x41c0cc]
mov dword [ebp - 0x130], edx
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [0x41c0c8]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov dword [0x41c0d0], eax
jmp 0x411718
mov dword [ebp - 0x134], 0xab
mov dword [ebp - 0x138], 0x99
mov edx, dword [0x41c0d0]
and edx, dword [ebp - 0x24]
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x28]
and eax, dword [ebp - 0x28]
mov esp, ebp
pop ebp
ret