Function at 0x412100
Capabilities:
Encode data using xor
Encrypt data using aes
Hash data with md5
Reference aes constants

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x415317
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x378
mov eax, dword [0x41e008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x380], ecx
mov dword [ebp - 4], 0
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0xf
mov byte [ebp - 0x1b0], 0
lea edx, [eax - 0x20]
cmp eax, edx
jb 0x412edc
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
push 0x20
cmovae eax, dword [ebx + 8]
lea ecx, [ebp - 0x1b0]
add eax, edx
push eax
call fcn.00410d70
mov byte [ebp - 4], 1
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 0xf
mov byte [ebp - 0x178], 0
lea ecx, [eax - 0x20]
cmp eax, ecx
cmovb ecx, eax
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
cmovae eax, dword [ebx + 8]
push ecx
push eax
lea ecx, [ebp - 0x178]
call fcn.00410d70
lea eax, [ebp - 0x178]
push eax
lea ecx, [ebx + 8]
call fcn.0040fe90
mov edx, dword [ebp - 0x164]
cmp edx, 0x10
jb 0x41221f
mov ecx, dword [ebp - 0x178]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412215
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x412215
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.00413d82
add esp, 8
mov esi, dword [ebp - 0x1a0]
xor ecx, ecx
test esi, esi
je 0x412253
nop dword [eax + eax]
cmp dword [ebp - 0x19c], 0x10
lea eax, [ebp - 0x1b0]
cmovae eax, dword [ebp - 0x1b0]
xor byte [eax + ecx], 0x77
inc ecx
mov esi, dword [ebp - 0x1a0]
cmp ecx, esi
jb 0x412230
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
push dword [ebx + 0x18]
cmovae eax, dword [ebx + 8]
lea ecx, [ebp - 0x228]
push eax
mov byte [ebp - 0x1c0], 0
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x228], 0x67452301
mov dword [ebp - 0x224], 0xefcdab89
mov dword [ebp - 0x220], 0x98badcfe
mov dword [ebp - 0x21c], 0x10325476
call fcn.004033a0
push ecx
lea ecx, [ebp - 0x228]
call fcn.004032b0
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.00403b70
cmp dword [ebp - 0x164], 0x10
lea ecx, [ebp - 0x178]
mov edi, dword [ebp - 0x178]
lea edx, [ebp - 0x1b0]
cmovae ecx, edi
cmp dword [ebp - 0x19c], 0x10
cmovae edx, dword [ebp - 0x1b0]
cmp esi, dword [ebp - 0x168]
jne 0x412357
sub esi, 4
jb 0x412311
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x412316
add edx, 4
add ecx, 4
sub esi, 4
jae 0x412300
cmp esi, 0xfffffffc
je 0x41234a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x412343
cmp esi, 0xfffffffd
je 0x41234a
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x412343
cmp esi, 0xfffffffe
je 0x41234a
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x412343
cmp esi, 0xffffffff
je 0x41234a
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x41234a
sbb eax, eax
or eax, 1
jmp 0x41234c
xor eax, eax
mov byte [ebp - 0x359], 0
test eax, eax
je 0x41235e
mov byte [ebp - 0x359], 1
mov eax, dword [ebp - 0x164]
cmp eax, 0x10
jb 0x412396
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x41238c
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x41238c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edi
call fcn.00413d82
add esp, 8
cmp byte [ebp - 0x359], 0
je 0x4123a6
xor esi, esi
jmp 0x412e48
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0xf
mov byte [ebp - 0x160], 0
mov byte [ebp - 4], 2
mov edi, 5
movups xmm0, xmmword [str.PZ_W]
mov esi, dword [0x41e5b8]
movups xmmword [ebp - 0x198], xmm0
movups xmm0, xmmword [0x41ab00]
movups xmmword [ebp - 0x188], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x41258d
xor edx, edx
mov dword [ebp - 0x360], edx
cmp esi, 2
jl 0x412550
movaps xmm0, xmmword [str.4444444444444444]
mov eax, 0x1f
movaps xmm4, xmmword [0x41aba0]
xor ecx, ecx
movaps xmm3, xmmword [0x41abe0]
movaps xmm6, xmmword [str.9999]
movaps xmmword [ebp - 0x40], xmm0
mov edx, dword [ebp - 0x40]
movd xmm5, edi
movd xmm7, eax
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x41abc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x198]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x198], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x41abc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x194]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x194], xmm1
add ecx, 8
cmp ecx, 0x20
jl 0x412440
jmp 0x41258d
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x360]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x360]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x198], cl
inc edx
mov dword [ebp - 0x360], edx
cmp edx, 0x20
jl 0x412550
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x178], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4125b1
sub ecx, edx
lea eax, [ebp - 0x198]
push ecx
push eax
lea ecx, [ebp - 0x178]
call fcn.00410d70
mov byte [ebp - 4], 3
movups xmm0, xmmword [0x41aacc]
movups xmmword [ebp - 0x37c], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x41277d
xor edx, edx
mov dword [ebp - 0x360], edx
cmp esi, 2
jl 0x412740
movaps xmm0, xmmword [str.4444444444444444]
mov eax, 0x1f
movaps xmm4, xmmword [0x41aba0]
xor ecx, ecx
movaps xmm3, xmmword [0x41abe0]
movaps xmm6, xmmword [str.9999]
movaps xmmword [ebp - 0x40], xmm0
mov edx, dword [ebp - 0x40]
movd xmm5, edi
movd xmm7, eax
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x41abc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x37c]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x37c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x41abc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x378]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x378], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x412633
jmp 0x41277d
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x360]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x360]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x37c], cl
inc edx
mov dword [ebp - 0x360], edx
cmp edx, 0x10
jl 0x412740
lea ecx, [ebp - 0x37c]
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x190], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4127a1
sub ecx, edx
lea eax, [ebp - 0x37c]
push ecx
push eax
lea ecx, [ebp - 0x190]
call fcn.00410d70
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x178]
cmp dword [ebp - 0x164], 0x10
lea edx, [ebp - 0x11b]
xorps xmm0, xmm0
mov esi, 8
cmovae ecx, dword [ebp - 0x178]
movups xmmword [ebp - 0x38], xmm0
mov al, byte [ecx]
mov byte [ebp - 0x138], al
mov al, byte [ecx + 1]
mov byte [ebp - 0x137], al
mov al, byte [ecx + 2]
mov byte [ebp - 0x136], al
mov al, byte [ecx + 3]
mov byte [ebp - 0x135], al
mov al, byte [ecx + 4]
mov byte [ebp - 0x134], al
mov al, byte [ecx + 5]
mov byte [ebp - 0x133], al
mov al, byte [ecx + 6]
mov byte [ebp - 0x132], al
mov al, byte [ecx + 7]
mov byte [ebp - 0x131], al
mov al, byte [ecx + 8]
mov byte [ebp - 0x130], al
mov al, byte [ecx + 9]
mov byte [ebp - 0x12f], al
mov al, byte [ecx + 0xa]
mov byte [ebp - 0x12e], al
mov al, byte [ecx + 0xb]
mov byte [ebp - 0x12d], al
mov al, byte [ecx + 0xc]
mov byte [ebp - 0x12c], al
mov al, byte [ecx + 0xd]
mov byte [ebp - 0x12b], al
mov al, byte [ecx + 0xe]
mov byte [ebp - 0x12a], al
mov al, byte [ecx + 0xf]
mov byte [ebp - 0x129], al
mov al, byte [ecx + 0x10]
mov byte [ebp - 0x128], al
mov al, byte [ecx + 0x11]
mov byte [ebp - 0x127], al
mov al, byte [ecx + 0x12]
mov byte [ebp - 0x126], al
mov al, byte [ecx + 0x13]
mov byte [ebp - 0x125], al
mov al, byte [ecx + 0x14]
mov byte [ebp - 0x124], al
mov al, byte [ecx + 0x15]
mov byte [ebp - 0x123], al
mov al, byte [ecx + 0x16]
mov byte [ebp - 0x122], al
mov al, byte [ecx + 0x17]
mov byte [ebp - 0x121], al
mov al, byte [ecx + 0x18]
mov byte [ebp - 0x120], al
mov al, byte [ecx + 0x19]
mov byte [ebp - 0x11f], al
mov al, byte [ecx + 0x1a]
mov byte [ebp - 0x11e], al
mov al, byte [ecx + 0x1b]
mov byte [ebp - 0x11d], al
mov al, byte [ecx + 0x1c]
mov byte [ebp - 0x11c], al
mov al, byte [ecx + 0x1d]
mov byte [ebp - 0x11b], al
mov al, byte [ecx + 0x1e]
mov byte [ebp - 0x11a], al
mov al, byte [ecx + 0x1f]
mov byte [ebp - 0x119], al
mov ah, byte [edx - 1]
mov edi, esi
mov al, byte [edx + 1]
mov ch, byte [edx + 2]
mov cl, byte [edx]
mov byte [ebp - 0x359], ah
mov byte [ebp - 0x35a], al
mov byte [ebp - 0x35b], ch
and edi, 7
jne 0x412981
movzx eax, al
movzx ecx, cl
mov al, byte [eax + 0x4184c8]
mov byte [ebp - 0x361], al
movzx eax, byte [ebp - 0x35b]
mov al, byte [eax + 0x4184c8]
mov byte [ebp - 0x35a], al
movzx eax, byte [ebp - 0x359]
mov al, byte [eax + 0x4184c8]
mov byte [ebp - 0x35b], al
mov eax, esi
shr eax, 3
mov ah, byte [eax + 0x4186c8]
xor ah, byte [ecx + 0x4184c8]
mov cl, byte [ebp - 0x361]
mov ch, byte [ebp - 0x35b]
jmp 0x4129c0
cmp edi, 4
jne 0x4129c0
movzx eax, ah
mov al, byte [eax + 0x4184c8]
mov byte [ebp - 0x359], al
movzx eax, cl
mov cl, byte [eax + 0x4184c8]
movzx eax, byte [ebp - 0x35a]
mov al, byte [eax + 0x4184c8]
mov byte [ebp - 0x35a], al
movzx eax, ch
mov ch, byte [eax + 0x4184c8]
mov ah, byte [ebp - 0x359]
mov al, byte [edx - 0x1d]
inc esi
xor al, ah
mov ah, byte [ebp - 0x35a]
mov byte [edx + 3], al
mov al, byte [edx - 0x1c]
xor al, cl
mov byte [edx + 4], al
mov al, byte [edx - 0x1b]
xor al, ah
mov byte [edx + 5], al
mov al, byte [edx - 0x1a]
xor al, ch
mov byte [edx + 6], al
add edx, 4
cmp esi, 0x3c
jb 0x412906
mov eax, dword [ebx + 0x18]
test al, 0xf
je 0x412a04
mov esi, 0xd
jmp 0x412d77
mov dword [ebp - 0x360], 0
test eax, 0xfffffff0
jbe 0x412b2e
xor edx, edx
mov dword [ebp - 0x368], edx
mov esi, dword [ebx + 0x1c]
xor ecx, ecx
mov edi, dword [ebx + 8]
nop dword [eax]
cmp esi, 0x10
lea eax, [ebx + 8]
cmovae eax, edi
add eax, edx
mov al, byte [eax + ecx]
mov byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0x10
jb 0x412a30
lea edx, [ebp - 0x138]
lea ecx, [ebp - 0x38]
call fcn.00403010
xor esi, esi
nop dword [eax + eax]
cmp dword [ebp - 0x17c], 0x10
lea eax, [ebp - 0x190]
mov edx, dword [ebp - 0x150]
cmovae eax, dword [ebp - 0x190]
mov edi, dword [ebp - 0x14c]
mov cl, byte [eax + esi]
xor cl, byte [ebp + esi - 0x38]
mov byte [ebp - 0x1b4], cl
cmp edx, edi
jae 0x412ab4
lea eax, [edx + 1]
cmp edi, 0x10
mov dword [ebp - 0x150], eax
lea eax, [ebp - 0x160]
cmovae eax, dword [ebp - 0x160]
mov byte [eax + edx], cl
mov byte [eax + edx + 1], 0
jmp 0x412ad3
push dword [ebp - 0x1b4]
mov byte [ebp - 0x36c], 0
push dword [ebp - 0x36c]
push ecx
lea ecx, [ebp - 0x160]
call fcn.00411390
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
mov edx, dword [ebp - 0x368]
lea ecx, [ebp - 0x190]
cmovae eax, dword [ebx + 8]
cmp dword [ebp - 0x17c], 0x10
cmovae ecx, dword [ebp - 0x190]
add eax, edx
mov al, byte [eax + esi]
mov byte [ecx + esi], al
inc esi
cmp esi, 0x10
jb 0x412a60
mov ecx, dword [ebp - 0x360]
add edx, 0x10
mov eax, dword [ebx + 0x18]
inc ecx
shr eax, 4
mov dword [ebp - 0x360], ecx
mov dword [ebp - 0x368], edx
cmp ecx, eax
jb 0x412a21
mov edx, dword [ebp - 0x14c]
lea eax, [ebp - 0x160]
mov esi, dword [ebp - 0x160]
cmp edx, 0x10
mov edi, dword [ebp - 0x150]
cmovae eax, esi
mov cl, byte [eax + edi - 1]
mov al, cl
dec al
cmp al, 0xf
ja 0x412ba4
test cl, cl
jle 0x412ba4
movzx eax, cl
mov dword [ebp - 0x368], eax
nop word [eax + eax]
cmp edx, 0x10
lea eax, [ebp - 0x160]
lea ecx, [edi - 1]
cmovae eax, esi
mov dword [ebp - 0x150], ecx
sub dword [ebp - 0x368], 1
mov byte [eax + ecx], 0
mov edx, dword [ebp - 0x14c]
mov edi, dword [ebp - 0x150]
mov esi, dword [ebp - 0x160]
jne 0x412b70
cmp edx, 0x10
lea ecx, [ebp - 0x160]
mov edx, edi
cmovae ecx, esi
sub esp, 8
call fcn.00408c50
mov esi, eax
lea eax, [ebp - 0x358]
push 0x12c
push 0
push eax
mov dword [ebp - 0x36c], esi
call sub.VCRUNTIME140.dll_memset
add esp, 0x14
xor edi, edi
test esi, esi
jne 0x412bed
mov dword [0x41e5e0], 0x10000
jmp 0x412c95
cmp dword [esi], 1
je 0x412c01
mov dword [0x41e5e0], 0x80000
jmp 0x412c95
mov esi, dword [esi + 4]
lea eax, [ebp - 0x148]
push str.256.ico
push 0x104
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
mov ecx, dword [esi]
lea edx, [ebp - 0x148]
add esp, 0xc
push 2
call fcn.00407bf0
add esp, 4
test eax, eax
je 0x412c5e
push 0x128
lea eax, [ebp - 0x354]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x358], 0xffffffff
mov eax, 0x500
or edi, 0xffffffff
jmp 0x412c8a
cmp dword [esi + 4], 0xffffffff
je 0x412c6b
mov ecx, dword [esi]
call fcn.00408520
mov eax, dword [esi]
mov ecx, esi
mov dword [esi + 4], 0xffffffff
mov edi, dword [eax + 0x10]
lea eax, [ebp - 0x358]
push eax
push edi
call fcn.00408590
test eax, eax
jne 0x412c8a
mov esi, dword [ebp - 0x36c]
mov dword [0x41e5e0], eax
push dword [ebp - 0x230]
call fcn.00413f90
push dword [ebp - 0x230]
mov edx, edi
mov dword [ebp - 0x36c], eax
push eax
mov ecx, esi
call fcn.00408e00
mov esi, dword [ebp - 0x36c]
lea ecx, [ebp - 0x40]
add esp, 0xc
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
push dword [ebp - 0x230]
push esi
call fcn.00410d70
mov edi, dword [ebp - 0x380]
lea eax, [ebp - 0x40]
cmp edi, eax
je 0x412d33
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x412d20
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x412d16
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41220f
mov eax, edx
push ecx
push eax
call fcn.00413d82
add esp, 8
movups xmm0, xmmword [ebp - 0x40]
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x30]
movq qword [edi + 0x10], xmm0
jmp 0x412d69
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x412d69
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412d5f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x412d5f
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.00413d82
add esp, 8
push esi
call fcn.00413d90
add esp, 4
mov esi, 1
mov edx, dword [ebp - 0x17c]
cmp edx, 0x10
jb 0x412db3
mov ecx, dword [ebp - 0x190]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412da9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x412da9
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.00413d82
add esp, 8
mov eax, dword [ebp - 0x164]
cmp eax, 0x10
jb 0x412df1
mov edx, dword [ebp - 0x178]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x412de7
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x412de7
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00413d82
add esp, 8
mov edx, dword [ebp - 0x14c]
cmp edx, 0x10
jb 0x412e2d
mov ecx, dword [ebp - 0x160]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412e23
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x412e23
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.00413d82
add esp, 8
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0xf
mov byte [ebp - 0x160], 0
mov eax, dword [ebp - 0x19c]
cmp eax, 0x10
jb 0x412e86
mov edx, dword [ebp - 0x1b0]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x412e7c
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x412e7c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00413d82
add esp, 8
mov edx, dword [ebx + 0x1c]
cmp edx, 0x10
jb 0x412ebc
mov ecx, dword [ebx + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412eb2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x412eb2
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.00413d82
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00413d41
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.00410ee0
int3