Function at 0x401000
Capabilities:
Allocate thread local storage
Delete directory
Get common file path
Terminate process

Disassembly:
push 0x150
push 0
push 0x412454
call fcn.00404070
add esp, 0xc
push 0
call sub.i_GetModuleHandleA
mov dword [0x412458], eax
push 0
push 0x1000
push 0
call sub.i_HeapCreate
mov dword [0x412454], eax
call section..text
mov eax, 0x41130e
mov dword [0x41248c], eax
call fcn.0040dfc0
call fcn.0040ddac
call fcn.0040c2b3
call fcn.0040bde3
call fcn.0040b790
call fcn.0040b41b
call fcn.0040b160
call fcn.0040b142
call fcn.0040b0b9
call fcn.0040a821
call fcn.00409850
call fcn.00408a61
call fcn.00408726
call fcn.004083b7
call fcn.00407421
call fcn.00407099
push dword [0x412590]
call fcn.00408745
push 7
push 0x411064
lea eax, [0x412590]
push eax
push 8
call fcn.00408694
push 0x412588
push 0x411074
push 7
push 0x401
push 8
call fcn.0040dcad
mov eax, 0x200
push eax
lea eax, [0x4125a0]
push eax
xor eax, eax
push eax
push 0x15
push 4
call fcn.0040c2d2
push dword [0x412598]
call fcn.00408745
push 7
push 0x41106c
lea eax, [0x412598]
push eax
push 8
call fcn.00408694
mov edx, 0x411021
lea ecx, [0x412528]
call fcn.00404068
mov ebp, 0x41130e
mov ebx, ebp
mov ebp, 0x411129
sub ebx, ebp
mov dword [0x412518], ebx
mov ebp, 0x411129
mov dword [0x41251c], ebp
push dword [0x412518]
call fcn.0040b1d0
mov dword [0x4124f0], eax
mov dword [0x41249c], 0
mov eax, dword [0x412518]
cmp eax, dword [0x41249c]
jl 0x4011b1
mov ebx, dword [0x41251c]
add ebx, dword [0x41249c]
mov eax, ebx
call fcn.0040b1f0
mov ebx, eax
imul ebx, ebx, 0xffffffff
push ebx
mov ebx, dword [0x4124f0]
add ebx, dword [0x41249c]
mov eax, ebx
call fcn.0040b200
inc dword [0x41249c]
jno 0x401170
mov edx, dword [0x412a78]
push edx
push edx
mov ebx, dword [0x412518]
add ebx, 0xfffffff8
push ebx
mov ebx, dword [0x4124f0]
add ebx, 4
push ebx
call fcn.0040b210
push 0x41247c
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push dword [0x41247c]
call fcn.004040d0
push 0x41247c
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 1
push dword [0x41247c]
call fcn.004041b0
push 0x4124bc
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 2
push dword [0x41247c]
call fcn.004041b0
push 0x412520
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 3
push dword [0x41247c]
call fcn.004041b0
push 0x4124b4
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 4
push dword [0x41247c]
call fcn.004041b0
push 0x412584
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 5
push dword [0x41247c]
call fcn.004041b0
push 0x4124c0
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 6
push dword [0x41247c]
call fcn.004041b0
push 0x412544
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 7
push dword [0x41247c]
call fcn.004041b0
push 0x412480
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 8
push dword [0x41247c]
call fcn.004041b0
push 0x4124d4
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 9
push dword [0x41247c]
call fcn.004041b0
push 0x412568
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0xa
push dword [0x41247c]
call fcn.004041b0
push 0x412490
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0xb
push dword [0x41247c]
call fcn.004041b0
push 0x412578
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0xc
push dword [0x41247c]
call fcn.004041b0
push 0x412530
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0xd
push dword [0x41247c]
call fcn.004041b0
push 0x4124dc
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0xe
push dword [0x41247c]
call fcn.004041b0
push 0x412510
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0xf
push dword [0x41247c]
call fcn.004041b0
push 0x41246c
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x10
push dword [0x41247c]
call fcn.004041b0
push 0x412564
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x11
push dword [0x41247c]
call fcn.004041b0
push 0x412498
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x12
push dword [0x41247c]
call fcn.004041b0
push 0x41250c
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x13
push dword [0x41247c]
call fcn.004041b0
push 0x412538
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x14
push dword [0x41247c]
call fcn.004041b0
push 0x412508
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x15
push dword [0x41247c]
call fcn.004041b0
push 0x41254c
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x16
push dword [0x41247c]
call fcn.004041b0
push 0x41252c
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x17
push dword [0x41247c]
call fcn.004041b0
push 0x412554
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x18
push dword [0x41247c]
call fcn.004041b0
push 0x4124c4
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x19
push dword [0x41247c]
call fcn.004041b0
push 0x4124cc
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x1a
push dword [0x41247c]
call fcn.004041b0
push 0x412550
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412528]
push 0x1b
push dword [0x41247c]
call fcn.004041b0
push 0x412504
call fcn.0040e040
call fcn.0040960f
mov ebx, eax
cmp ebx, 0x3c
jge 0x40165e
push 0x10
push dword [0x41254c]
push dword [0x412564]
call fcn.004070d0
jmp 0x401d8c
mov eax, 0x41130e
mov dword [0x41248c], eax
mov eax, dword [0x41248c]
mov eax, dword [eax]
mov dword [0x41249c], eax
add dword [0x41248c], 4
mov eax, dword [0x41248c]
mov eax, dword [eax]
mov dword [0x4124a0], eax
add dword [0x41248c], 4
mov eax, dword [0x41248c]
mov eax, dword [eax]
mov dword [0x4124a4], eax
add dword [0x41248c], 4
mov eax, dword [0x41248c]
mov eax, dword [eax]
mov dword [0x4124a8], eax
add dword [0x41248c], 4
mov eax, dword [0x41248c]
mov eax, dword [eax]
mov dword [0x4124ac], eax
add dword [0x41248c], 4
push 0x14
call fcn.0040b1d0
mov dword [0x4124b0], eax
push dword [0x41249c]
mov eax, dword [0x4124b0]
call fcn.0040b270
push dword [0x4124a0]
mov ebx, dword [0x4124b0]
add ebx, 4
mov eax, ebx
call fcn.0040b270
push dword [0x4124a4]
mov ebx, dword [0x4124b0]
add ebx, 8
mov eax, ebx
call fcn.0040b270
push dword [0x4124a8]
mov ebx, dword [0x4124b0]
add ebx, 0xc
mov eax, ebx
call fcn.0040b270
push dword [0x4124ac]
mov ebx, dword [0x4124b0]
add ebx, 0x10
mov eax, ebx
call fcn.0040b270
mov edx, dword [0x412a78]
push edx
push edx
push 0x14
push dword [0x4124b0]
call fcn.0040c890
push 0x41257c
call fcn.0040e040
call fcn.00407ad6
mov edx, 0x411025
lea ecx, [0x41253c]
call fcn.00404068
mov edx, 0x411046
lea ecx, [0x412534]
call fcn.00404068
mov edx, 0x41104b
lea ecx, [0x4124f8]
call fcn.00404068
lea eax, [0x402650]
push eax
call fcn.004084b0
call fcn.0040755f
mov dword [0x412540], eax
push 0
call sub.i_GetModuleHandleA
mov dword [0x4124e0], eax
push dword [0x412a78]
push dword [0x412540]
call fcn.004024e7
push 0x4124d0
call fcn.0040e040
call fcn.00403e57
call fcn.00403c07
mov edx, dword [0x412a78]
push edx
push edx
push 0
call fcn.00407511
inc dword [0x412a78]
mov edx, dword [0x412504]
pop ecx
mov dword [0x412a78], ecx
add ecx, dword [0x411324]
call fcn.0040e0c0
je 0x401823
mov ebx, dword [0x412540]
cmp ebx, 1
jne 0x401823
mov eax, 1
jmp 0x401825
xor eax, eax
and eax, eax
je 0x40182e
call fcn.0040277c
push 0x411035
push dword [0x4124e0]
call fcn.00403211
and eax, eax
je 0x401983
push 0x400
call fcn.0040b1d0
mov dword [0x4124d8], eax
mov edx, dword [0x412a78]
push edx
push edx
call fcn.0040b427
push 0x412574
call fcn.0040e040
push dword [0x4124d8]
push 0
push 0x41101e
push dword [0x412574]
call sub.i_GetTempFileNameA
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x4124d8]
call fcn.0040b280
push 0x41255c
call fcn.0040e040
push dword [0x4124d8]
call fcn.0040b2d0
push dword [0x41255c]
call fcn.0040b4b6
push dword [0x41255c]
call fcn.0040b4c4
push dword [0x41255c]
call fcn.0040f3ad
mov edx, dword [0x41255c]
push dword [0x412a78]
call fcn.0040e0f0
mov edx, dword [0x412520]
call fcn.0040e0f0
mov edx, dword [0x4124f8]
call fcn.0040e0f0
push 0x4124ec
call fcn.0040e040
push dword [0x4124ec]
push 0
call fcn.0040b930
push dword [0x412474]
push dword [0x412460]
push 0
call fcn.0040bab0
push 0
call fcn.0040b710
mov edx, dword [0x4124ec]
push dword [0x412a78]
call fcn.0040e0f0
push 0x4124e8
call fcn.0040e040
push dword [0x4124e8]
call fcn.0040f3b3
push dword [0x4124e8]
push dword [0x4124bc]
call fcn.00407572
push dword [0x4124b4]
push dword [0x412520]
call fcn.00407572
mov dword [0x412470], 1
mov edx, dword [0x412560]
push dword [0x412a78]
call fcn.0040e0f0
mov edx, dword [0x41253c]
call fcn.0040e0f0
mov edx, dword [0x412500]
call fcn.0040e0f0
push 0x412500
call fcn.0040e040
mov edx, dword [0x412a78]
push edx
push edx
push 0x800
call fcn.004042c0
push 0x412488
call fcn.0040e040
push dword [0x412a78]
push dword [0x412488]
push 0
push 0x41101e
mov edx, dword [0x412560]
push dword [0x412a78]
call fcn.0040e0f0
mov edx, dword [0x41253c]
call fcn.0040e0f0
inc dword [0x412a78]
mov edx, dword [0x411324]
add dword [esp], edx
call sub.i_GetTempFileNameA
pop dword [0x412a78]
push dword [0x412488]
call fcn.0040b4b6
push dword [0x412534]
push dword [0x412488]
call fcn.0040f3b9
mov edx, dword [0x412488]
push dword [0x412a78]
call fcn.0040e0f0
push 0x412500
call fcn.0040e040
call fcn.00403a17
mov edx, dword [0x412484]
xor ecx, ecx
call fcn.0040e0c0
jne 0x401a72
push dword [0x412484]
call fcn.00402ad2
call fcn.0040341c
call fcn.004031dd
and eax, eax
je 0x401a93
call fcn.0040960f
mov ebx, eax
cmp ebx, 0x41
je 0x401a93
mov eax, 1
jmp 0x401a95
xor eax, eax
and eax, eax
je 0x401c0c
mov edx, dword [0x412a78]
push edx
push edx
push 0x800
call fcn.004042c0
push 0x412580
call fcn.0040e040
push 0x800
push dword [0x412580]
call sub.i_GetWindowsDirectoryA
push dword [0x412580]
call fcn.0040f3ad
mov edx, dword [0x412580]
push dword [0x412a78]
call fcn.0040e0f0
mov edx, str.sysnative
call fcn.0040e0f0
push 0x412580
call fcn.0040e040
push dword [0x412580]
call fcn.0040f3ad
mov edx, dword [0x412580]
push dword [0x412a78]
call fcn.0040e0f0
mov edx, dword [0x4124cc]
call fcn.0040e0f0
push 0x4124c8
call fcn.0040e040
mov edx, dword [0x412580]
push dword [0x412a78]
call fcn.0040e0f0
mov edx, dword [0x4124cc]
call fcn.0040e0f0
mov edx, dword [0x4124f8]
call fcn.0040e0f0
push 0x4124e4
call fcn.0040e040
push dword [0x4124c8]
push 0
call fcn.0040ba00
and eax, eax
je 0x401b85
mov dword [0x41249c], 1
push 0
call fcn.0040b710
jmp 0x401b8f
mov dword [0x41249c], 0
push dword [0x4124e4]
push 0
call fcn.0040ba00
and eax, eax
je 0x401bb9
mov dword [0x4124a0], 1
push 0
call fcn.0040b710
jmp 0x401bc3
mov dword [0x4124a0], 0
mov ebx, dword [0x41249c]
add ebx, dword [0x4124a0]
and ebx, ebx
jne 0x401c0a
mov edx, dword [0x412a78]
push edx
push edx
push 0x800
call fcn.004042c0
push 0x412580
call fcn.0040e040
push 0x800
push dword [0x412580]
call sub.i_GetSystemDirectoryA
push dword [0x412580]
call fcn.0040f3ad
jmp 0x401c43
mov edx, dword [0x412a78]
push edx
push edx
push 0x800
call fcn.004042c0
push 0x412580
call fcn.0040e040
push 0x800
push dword [0x412580]
call sub.i_GetSystemDirectoryA
push dword [0x412580]
call fcn.0040f3ad
push dword [0x412500]
call fcn.0040f3b3
mov edx, dword [0x412500]
push dword [0x412a78]
call fcn.0040e0f0
mov edx, str.__BFINOPSX
call fcn.0040e0f0
mov edx, dword [0x4124d0]
call fcn.0040e0f0
push 0x4124d0
call fcn.0040e040
push dword [0x4124d0]
call fcn.0040f3b3
push dword [0x412a78]
mov edx, dword [0x412550]
push dword [0x412a78]
call fcn.0040e0f0
mov edx, str.__BFINOPSX
call fcn.0040e0f0
mov edx, dword [0x4124d0]
call fcn.0040e0f0
inc dword [0x412a78]
push dword [0x4124f4]
mov edx, dword [0x412580]
push dword [0x412a78]
call fcn.0040e0f0
mov edx, dword [0x4124cc]
call fcn.0040e0f0
mov edx, dword [0x411324]
add dword [esp], edx
mov edx, dword [0x411324]
add dword [esp + 8], edx
call fcn.0040269a
pop dword [0x412a78]
mov dword [0x412494], eax
call fcn.0040394b
push dword [0x412500]
call fcn.0040f3bf
push dword [0x412500]
call fcn.0040b4b6
push dword [0x412570]
call fcn.0040b4b6
push dword [0x4124ec]
call fcn.0040b4b6
mov edx, dword [0x412a78]
push edx
push edx
mov edx, dword [0x412a78]
push edx
push edx
push dword [0x412a78]
call fcn.00407593
mov edx, dword [0x411324]
add dword [esp], edx
call fcn.0040b53a
mov edx, dword [0x411324]
add dword [esp], edx
call fcn.0040b5b0
pop dword [0x412a78]
push dword [0x41255c]
call sub.i_RemoveDirectoryA
push dword [0x412560]
call sub.i_RemoveDirectoryA
push dword [0x412494]
jmp 0x401d91
push 0
call 0x401dab
call fcn.0040e010
push dword [0x412454]
call sub.i_HeapDestroy
call sub.i_ExitProcess
call fcn.004083cb
call fcn.00408600
call fcn.00408ad1
call fcn.00409839
call fcn.0040a8af
call fcn.0040b0ad
call fcn.0040b5c2
call fcn.0040b780
call fcn.0040c190
call fcn.0040b180
ret