Function at 0x414e3e
Capabilities:
Create new key via cryptacquirecontext
Generate random numbers via winapi
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x244
mov eax, dword [0x43b034]
xor eax, esp
mov dword [esp + 0x240], eax
push ebx
mov ebx, ecx
mov byte [esp + 0x18], 1
xor ecx, ecx
mov dword [esp + 0x34], ebx
push esi
mov eax, ebx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xa4], ecx
mov esi, ecx
mov dword [esp + 0x90], ecx
mov edx, 0x405b50
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], ecx
mov byte [esp + 0xb], cl
mov dword [esp + 0x80], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x14], cl
mov dword [esp + 0x48], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x8c], ecx
mov byte [esp + 0x10], cl
push edi
sub eax, ecx
je 0x41504e
sub eax, 1
je 0x414fc6
sub eax, 1
je 0x414f3c
sub eax, 1
je 0x41504e
mov esi, 0xc000000d
push esi
call dword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
mov ecx, eax
call fcn.0041ba5a
mov ecx, dword [esp + 0x24c]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00437a70
mov esp, ebp
pop ebp
ret
mov ecx, 0x4050b0
mov dword [esp + 0x38], 0x2200012d
mov dword [esp + 0x88], 0x2500012c
mov dword [esp + 0x5c], 0x2500012f
mov dword [esp + 0x60], 0x25000139
mov dword [esp + 0x8c], 0x25000131
mov dword [esp + 0x74], 0x26000135
mov dword [esp + 0x6c], 0x25000133
mov dword [esp + 0x64], 0x22000156
mov dword [esp + 0x44], 0x22000136
mov dword [esp + 0x70], 0x25000134
mov dword [esp + 0x58], 0x20200003
mov dword [esp + 0x98], edx
mov dword [esp + 0x40], 0xc100804d
mov dword [esp + 0x80], 0xc100804c
mov dword [esp + 0x54], 0xc100804e
jmp 0x4150e2
mov ecx, 0x405078
mov dword [esp + 0x60], 0x250000f5
mov dword [esp + 0x38], 0x220000f9
mov eax, 0x405b60
mov dword [esp + 0x8c], 0x250000f6
mov dword [esp + 0x5c], 0x250000f4
mov dword [esp + 0x74], 0x26000114
mov dword [esp + 0x6c], 0x250000fd
mov dword [esp + 0x64], 0x22000161
mov dword [esp + 0x44], 0x22000110
mov dword [esp + 0x70], 0x250000fe
mov dword [esp + 0x88], 0x250000f3
mov dword [esp + 0x58], 0x20200003
mov dword [esp + 0x40], 0xc100803f
mov dword [esp + 0x80], 0xc1008041
mov dword [esp + 0x54], 0xc1008040
jmp 0x4150db
mov ecx, 0x404fc4
cmp ebx, 3
jne 0x41505d
mov ecx, 0x4050d4
mov dword [esp + 0x60], 0x15000014
mov eax, 0x405b70
mov dword [esp + 0x38], 0x12000019
mov dword [esp + 0x8c], 0x15000015
mov dword [esp + 0x5c], 0x15000013
mov dword [esp + 0x74], 0x1600001c
mov dword [esp + 0x6c], 0x1500001a
mov dword [esp + 0x64], 0x1200001f
mov dword [esp + 0x44], 0x1200001d
mov dword [esp + 0x70], 0x1500001b
mov dword [esp + 0x88], 0x15000011
mov dword [esp + 0x58], 0x20100000
mov dword [esp + 0x40], 0xc1008026
mov dword [esp + 0x80], 0xc100803d
mov dword [esp + 0x54], 0xc1008025
mov dword [esp + 0x98], eax
call fcn.0041aca0
mov edi, eax
mov dword [esp + 0x30], edi
test edi, edi
je 0x414f12
xor edx, edx
cmp dword [edi + 0xc], edx
jbe 0x415819
push 0x405144
push dword [edi + 0x10]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x415257
mov eax, dword [esp + 0x30]
xor edx, edx
xor edi, edi
mov dword [esp + 0x78], edx
inc edi
mov dword [esp + 0x7c], edx
cmp dword [eax + 0xc], edi
jbe 0x4152f1
lea esi, [eax + 0x14]
push 0xa
push 0x405154
push dword [esi]
call dword [sym.imp.msvcrt.dll__wcsnicmp]
mov ecx, dword [esi]
add esp, 0xc
test eax, eax
jne 0x4151a8
lea eax, [ecx + 0x14]
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x10]
push 0xa
push ecx
push eax
mov dword [esp + 0xc8], eax
call dword [sym.imp.msvcrt.dll_wcstoul]
xor edx, edx
mov dword [esp + 0xe4], eax
add esp, 0xc
mov dword [esp + 0xdc], edx
or eax, edx
je 0x415193
mov eax, dword [esp + 0x10]
test eax, eax
je 0x415193
cmp word [eax], dx
je 0x415233
push 0xc1008024
call fcn.0041ba12
pop ecx
mov esi, 0xc000000d
jmp 0x415fd2
push 9
push 0x40516c
push ecx
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x415193
mov eax, dword [esi]
xor ecx, ecx
mov dword [esp + 0x10], ecx
add eax, 0x12
push 0xa
lea ecx, [esp + 0x14]
mov dword [esp + 0xac], eax
push ecx
push eax
call dword [sym.imp.msvcrt.dll_wcstoul]
xor edx, edx
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xe0], ecx
or eax, edx
mov dword [esp + 0xe4], edx
je 0x415193
mov eax, dword [esp + 0x10]
test eax, eax
je 0x415193
cmp word [eax], dx
jne 0x415193
cmp ecx, 0x2580
je 0x415233
cmp ecx, 0x4b00
je 0x415233
cmp ecx, 0x9600
je 0x415233
cmp ecx, 0xe100
je 0x415233
cmp ecx, 0x1c200
je 0x415233
cmp ecx, 0x38400
jb 0x41524d
mov eax, dword [esp + 0x30]
inc edi
add esi, 4
cmp edi, dword [eax + 0xc]
jb 0x415135
mov al, byte [esp + 0xf]
jmp 0x4152f3
push 0xc1008036
jmp 0x415198
push 0x405180
push dword [edi + 0x10]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x415275
push 0xc1008053
jmp 0x415198
cmp ebx, 1
je 0x415376
push 0x40518c
push dword [edi + 0x10]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x415376
mov eax, dword [esp + 0x30]
xor edi, edi
xor edx, edx
mov dword [esp + 0x78], 2
inc edi
mov dword [esp + 0x7c], edx
cmp dword [eax + 0xc], edi
jbe 0x4152f1
lea esi, [eax + 0x14]
push 0xb
push 0x405194
push dword [esi]
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x415193
mov eax, dword [esi]
xor edx, edx
add eax, 0x16
mov dword [esp + 0x90], eax
cmp word [eax], dx
je 0x415193
mov eax, dword [esp + 0x30]
inc edi
add esi, 4
cmp edi, dword [eax + 0xc]
jb 0x4152b3
mov al, dl
test ebx, ebx
jne 0x415877
test al, al
jne 0x415877
mov ecx, 0x40524c
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], edx
call fcn.0041aca0
mov esi, eax
mov dword [esp + 0xb4], esi
test esi, esi
je 0x415852
cmp dword [esi + 0xc], 1
jne 0x415193
push 0x405258
push dword [esi + 0x10]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
je 0x415852
push 0x405268
push dword [esi + 0x10]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x415824
mov dword [esp + 0xa0], 1
jmp 0x415847
test ebx, ebx
jne 0x4153ab
push 0x4051ac
push dword [edi + 0x10]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x4153ab
xor edx, edx
mov dword [esp + 0x78], 4
mov dword [esp + 0x7c], edx
cmp dword [edi + 0xc], 1
je 0x415303
jmp 0x415193
push 0x4051b8
push dword [edi + 0x10]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x41580f
xor ecx, ecx
mov dword [esp + 0x78], 3
xor edx, edx
inc ecx
mov dword [esp + 0x7c], edx
mov ebx, ecx
mov dword [esp + 0x34], ecx
cmp dword [edi + 0xc], ecx
jbe 0x415792
add edi, 0x14
push 9
push 0x4051c0
push dword [edi]
call dword [sym.imp.msvcrt.dll__wcsnicmp]
mov ecx, dword [edi]
add esp, 0xc
test eax, eax
jne 0x415443
lea eax, [ecx + 0x12]
xor ecx, ecx
mov dword [esp + 0x28], eax
cmp word [eax], cx
je 0x415193
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0xf8]
push ecx
lea ecx, [esp + 0x14]
push ecx
push eax
call dword [sym.imp.ntdll.dll_RtlIpv6StringToAddressW]
test eax, eax
js 0x415193
mov eax, dword [esp + 0x10]
test eax, eax
je 0x415193
xor edx, edx
jmp 0x4155bf
push 7
push 0x4051d4
push ecx
call dword [sym.imp.msvcrt.dll__wcsnicmp]
mov ecx, dword [edi]
add esp, 0xc
test eax, eax
jne 0x41547c
lea eax, [ecx + 0xe]
lea edx, [esp + 0xc8]
mov dword [esp + 0x68], eax
mov ecx, eax
call fcn.0041de72
test eax, eax
js 0x415193
jmp 0x415748
push 5
push 0x4051e4
push ecx
call dword [sym.imp.msvcrt.dll__wcsnicmp]
mov ecx, dword [edi]
add esp, 0xc
push 0xa
test eax, eax
jne 0x41550b
lea eax, [ecx + 0xa]
xor ecx, ecx
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x54], eax
call dword [sym.imp.msvcrt.dll_wcstoul]
xor edx, edx
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xe8], ecx
or eax, edx
mov dword [esp + 0xec], edx
je 0x415193
mov eax, dword [esp + 0x10]
test eax, eax
je 0x415193
cmp word [eax], dx
jne 0x415193
add ecx, 0xffff4000
mov eax, edx
adc eax, 0xffffffff
cmp eax, edx
ja 0x415501
jb 0x41577d
cmp ecx, 0x3fff
jbe 0x41577d
push 0xc1008046
jmp 0x415198
push 0x4051f0
push ecx
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x415561
mov ecx, dword [edi]
mov edx, eax
add ecx, 0x14
mov dword [esp + 0x94], edx
mov dword [esp + 0xac], ecx
movzx eax, word [ecx]
test ax, ax
je 0x415748
push 0x20
pop esi
cmp ax, si
je 0x415748
inc edx
mov dword [esp + 0x94], edx
movzx eax, word [ecx + edx*2]
test ax, ax
jne 0x415542
jmp 0x415748
mov esi, dword [esp + 0x3c]
cmp esi, 1
jne 0x4155cd
push 6
push 0x405208
push dword [edi]
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x4155cd
mov eax, dword [edi]
xor ecx, ecx
mov dword [esp + 0x10], ecx
add eax, 0xc
push 0xa
lea ecx, [esp + 0x14]
mov dword [esp + 0xb4], eax
push ecx
push eax
call dword [sym.imp.msvcrt.dll_wcstoul]
mov dword [esp + 0xfc], eax
xor edx, edx
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0xf4], edx
test eax, eax
je 0x415193
cmp word [eax], dx
jne 0x415193
jmp 0x41577d
push 4
push 0x405218
push dword [edi]
call dword [sym.imp.msvcrt.dll__wcsnicmp]
mov ecx, dword [edi]
add esp, 0xc
test eax, eax
jne 0x415711
add ecx, 8
xor edx, edx
mov dword [esp + 0x24], ecx
cmp word [ecx], dx
je 0x415707
mov eax, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], eax
mov esi, edx
cmp word [ecx], dx
je 0x41563a
push 0x24
lea eax, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.msvcrt.dll__wcstoui64]
xor ecx, ecx
add esp, 0xc
cmp edx, ecx
ja 0x415627
cmp eax, ecx
jbe 0x415636
cmp edx, 0xffffffff
ja 0x415636
jb 0x415633
cmp eax, 0xffffffff
jae 0x415636
xor esi, esi
inc esi
mov eax, dword [esp + 0x1c]
push 0x2e
pop ecx
cmp word [eax], cx
jne 0x4156f3
cmp esi, 1
jne 0x41567f
push 0x24
lea ecx, [esp + 0x20]
add eax, 2
push ecx
push eax
call dword [sym.imp.msvcrt.dll__wcstoui64]
xor ecx, ecx
add esp, 0xc
cmp edx, ecx
ja 0x415669
cmp eax, ecx
jbe 0x415678
cmp edx, 0xffffffff
ja 0x415678
jb 0x415675
cmp eax, 0xffffffff
jae 0x415678
push 2
pop esi
mov eax, dword [esp + 0x1c]
push 0x2e
pop ecx
cmp word [eax], cx
jne 0x4156f3
cmp esi, 2
jne 0x4156bc
push 0x24
lea ecx, [esp + 0x20]
add eax, esi
push ecx
push eax
call dword [sym.imp.msvcrt.dll__wcstoui64]
xor ecx, ecx
add esp, 0xc
cmp edx, ecx
ja 0x4156a6
cmp eax, ecx
jbe 0x4156b5
cmp edx, 0xffffffff
ja 0x4156b5
jb 0x4156b2
cmp eax, 0xffffffff
jae 0x4156b5
push 3
pop esi
mov eax, dword [esp + 0x1c]
push 0x2e
pop ecx
cmp word [eax], cx
jne 0x4156f3
cmp esi, 3
jne 0x4156f3
push 0x24
lea ecx, [esp + 0x14]
add eax, 2
push ecx
push eax
call dword [sym.imp.msvcrt.dll__wcstoui64]
xor ecx, ecx
add esp, 0xc
cmp edx, ecx
ja 0x4156e4
cmp eax, ecx
jbe 0x415707
cmp edx, 0xffffffff
ja 0x415707
jb 0x4156f0
cmp eax, 0xffffffff
jae 0x415707
push 4
pop esi
cmp esi, 4
jne 0x415707
mov eax, dword [esp + 0x10]
test eax, eax
je 0x415707
xor edx, edx
cmp word [eax], dx
je 0x41577d
push 0xc1008047
jmp 0x415198
push 6
push 0x405224
push ecx
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x41572a
xor edx, edx
jmp 0x415779
push 6
push 0x405234
push dword [edi]
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x41574c
mov dword [esp + 0x50], 1
xor edx, edx
jmp 0x41577d
test esi, esi
jne 0x415193
push 2
push 0x405244
push dword [edi]
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x415193
xor edx, edx
mov byte [esp + 0x14], 1
mov dword [esp + 0x34], edx
mov byte [esp + 0x20], dl
mov eax, dword [esp + 0x30]
inc ebx
add edi, 4
cmp ebx, dword [eax + 0xc]
jb 0x4153e6
mov esi, dword [esp + 0x24]
cmp byte [esp + 0x14], 0
jne 0x4157db
cmp dword [esp + 0x68], 0
jne 0x4157ad
cmp dword [esp + 0x28], 0
je 0x415193
jmp 0x4157b8
cmp dword [esp + 0x28], 0
jne 0x415193
cmp dword [esp + 0x48], 0
je 0x415193
test esi, esi
je 0x4157d2
cmp dword [esp + 0x50], 0
jne 0x415193
mov ebx, dword [esp + 0x3c]
jmp 0x415244
cmp dword [esp + 0x68], 0
jne 0x4157ef
cmp dword [esp + 0x28], 0
je 0x415193
jmp 0x4157fa
cmp dword [esp + 0x28], 0
jne 0x415193
cmp dword [esp + 0x48], 0
jne 0x415193
test esi, esi
jne 0x415193
jmp 0x4157c7
push 0xc1008023
jmp 0x415198
mov al, 1
mov byte [esp + 0xf], al
jmp 0x4152f3
push 0x405280
push dword [esi + 0x10]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x415193
mov dword [esp + 0xa0], 2
xor esi, esi
mov dword [esp + 0xa4], esi
jmp 0x415854
xor esi, esi
xor eax, eax
mov ecx, 0x405290
mov word [esp + 0x18], ax
call fcn.0041aca0
test eax, eax
je 0x415877
cmp dword [eax + 0xc], esi
jne 0x415193
mov byte [esp + 0x18], 1
xor ecx, ecx
call fcn.0041aca0
mov dword [esp + 0xb8], eax
test eax, eax
je 0x41589c
push dword [eax + 8]
push 0xc100803a
call fcn.0041ba12
pop ecx
jmp 0x41519d
lea eax, [esp + 0x2c]
xor edx, edx
push eax
call fcn.0041be69
mov esi, eax
test esi, esi
jns 0x4158be
push 0xc1008005
call fcn.0041ba12
pop ecx
jmp 0x415fbc
mov edi, dword [esp + 0x98]
lea eax, [esp + 0x4c]
mov ecx, dword [esp + 0x2c]
mov edx, edi
push eax
call fcn.0041fa76
mov esi, eax
cmp esi, 0xc0000034
jne 0x415942
xor eax, eax
mov edx, 0x405b50
mov ecx, eax
mov eax, dword [edi + ecx*4]
cmp eax, dword [edx + ecx*4]
jne 0x415946
inc ecx
cmp ecx, 4
jne 0x4158e8
mov eax, dword [esp + 0x58]
mov edx, edi
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xd4], eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0xd4]
mov dword [esp + 0xd4], 1
push eax
call fcn.0041fc44
mov esi, eax
test esi, esi
js 0x415946
mov ecx, dword [esp + 0x2c]
mov edx, 0x405b40
push 3
push edi
push 0x14000006
call fcn.0041d18d
mov esi, eax
test esi, esi
jns 0x415958
push dword [esp + 0x54]
call fcn.0041ba12
mov edi, dword [esp + 0x50]
jmp 0x415fb0
cmp dword [esp + 0x34], 0
mov edi, dword [esp + 0x4c]
je 0x4159be
cmp dword [esp + 0x24], 0
jne 0x4159be
cmp dword [esp + 0x50], 0
jne 0x4159ef
mov edx, dword [esp + 0x44]
xor eax, eax
mov word [esp + 0x1c8], ax
mov ecx, edi
lea eax, [esp + 0xc0]
mov dword [esp + 0xc0], 0x80
push eax
lea eax, [esp + 0x1cc]
push eax
xor eax, eax
push eax
call fcn.0042024d
test eax, eax
js 0x4159ef
cmp word [esp + 0x1c8], 0
je 0x4159ef
lea eax, [esp + 0x1c8]
mov dword [esp + 0x24], eax
cmp byte [esp + 0xf], 0
mov ecx, edi
je 0x415bea
lea eax, [esp + 0x38]
push eax
lea edx, [esp + 0x88]
call fcn.0041bb3c
mov esi, eax
test esi, esi
jns 0x415b1e
push dword [esp + 0x54]
jmp 0x415fab
push 0xf0000040
push 0x18
xor ebx, ebx
lea eax, [esp + 0xa4]
push ebx
push ebx
push eax
mov dword [esp + 0xb0], ebx
call dword [sym.imp.CRYPTSP.dll_CryptAcquireContextA]
test eax, eax
jne 0x415a35
push 0xc1008048
call fcn.0041ba12
pop ecx
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ecx, eax
call fcn.0041ba5a
mov esi, 0xc000000d
jmp 0x415fb1
lea eax, [esp + 0x108]
push eax
push 0x20
pop eax
push eax
push dword [esp + 0xa4]
call dword [sym.imp.CRYPTSP.dll_CryptGenRandom]
test eax, eax
jne 0x415a59
push 0xc1008049
jmp 0x415a18
push ebx
push dword [esp + 0xa0]
call dword [sym.imp.CRYPTSP.dll_CryptReleaseContext]
xor eax, eax
mov word [esp + 0x148], ax
mov edx, eax
mov dword [esp + 0x34], eax
lea ecx, [ebx + ebx]
mov eax, 0x80
push 0x24
sub eax, ecx
lea esi, [esp + 0x14c]
push eax
add esi, ecx
push esi
push dword [esp + edx*8 + 0x118]
push dword [esp + edx*8 + 0x118]
call dword [sym.imp.msvcrt.dll__ui64tow_s]
add esp, 0x14
test eax, eax
jne 0x415b0a
lea ecx, [esi + 2]
xor edx, edx
mov ax, word [esi]
add esi, 2
cmp ax, dx
jne 0x415aae
mov edx, dword [esp + 0x34]
sub esi, ecx
sar esi, 1
add ebx, esi
push 0x2e
pop eax
mov word [esp + ebx*2 + 0x148], ax
inc ebx
inc edx
mov dword [esp + 0x34], edx
cmp edx, 4
jb 0x415a77
lea ebx, [ebx*2 - 2]
cmp ebx, 0x80
jae 0x416038
xor eax, eax
mov word [esp + ebx + 0x148], ax
lea eax, [esp + 0x148]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
jmp 0x4159be
push 0xc100804a
call fcn.0041ba12
mov esi, 0xc000000d
jmp 0x415fb0
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x415b32
push dword [esp + 0x80]
jmp 0x415fab
xor ecx, ecx
mov ebx, ecx
test eax, eax
je 0x415fb1
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + ebx*8]
mov eax, dword [edx + 4]
cmp eax, 0x250000fd
je 0x415b7f
cmp eax, 0x25000133
je 0x415b7f
cmp eax, 0x1500001a
je 0x415b7f
push dword [edx + 8]
mov edx, dword [esp + 0x5c]
push dword [ecx + ebx*8 + 4]
mov ecx, edi
push eax
call fcn.004175f2
mov esi, eax
test esi, esi
js 0x415fb1
jmp 0x415bda
sub eax, 0x1500001a
je 0x415ba0
sub eax, 0x100000e3
je 0x415b99
sub eax, 0x36
jne 0x415baa
mov ecx, 0x4052d4
jmp 0x415ba5
mov ecx, 0x4052a0
jmp 0x415ba5
mov ecx, 0x405308
call fcn.0041d946
mov eax, dword [esp + 0x84]
lea edx, [esp + 0x128]
push ecx
mov ecx, dword [eax + ebx*8 + 4]
mov ecx, dword [ecx]
call fcn.0041de44
lea ecx, [esp + 0x128]
call fcn.0041d946
mov ecx, 0x40533c
call fcn.0041d946
inc ebx
cmp ebx, dword [esp + 0x38]
jb 0x415b3e
jmp 0x415fb1
mov esi, dword [esp + 0x88]
mov edx, esi
push 1
call fcn.0042065e
mov edx, dword [esp + 0x5c]
mov ecx, edi
push 1
call fcn.0042065e
mov edx, dword [esp + 0x60]
mov ecx, edi
push 1
call fcn.0042065e
mov edx, dword [esp + 0x8c]
mov ecx, edi
push 1
call fcn.0042065e
mov edx, dword [esp + 0x6c]
mov ecx, edi
push 1
call fcn.0042065e
mov edx, dword [esp + 0x64]
mov ecx, edi
push 1
call fcn.0042065e
mov edx, dword [esp + 0x70]
mov ecx, edi
push 1
call fcn.0042065e
mov edx, dword [esp + 0x44]
mov ecx, edi
push 1
call fcn.0042065e
mov edx, dword [esp + 0x74]
mov ecx, edi
push 1
call fcn.0042065e
mov eax, ebx
xor ecx, ecx
sub eax, ecx
je 0x415cb3
sub eax, 1
je 0x415c9e
sub eax, 1
jne 0x415d07
push 1
mov edx, 0x2500012e
mov ecx, edi
call fcn.0042065e
push 1
mov edx, 0x22000132
mov ecx, edi
call fcn.0042065e
mov edx, 0x2200012d
jmp 0x415cfe
push 1
mov edx, 0x220000f9
mov ecx, edi
call fcn.0042065e
mov edx, 0x250000ff
jmp 0x415cfe
push 1
mov edx, 0x15000012
mov ecx, edi
call fcn.0042065e
push 1
mov edx, 0x12000016
mov ecx, edi
call fcn.0042065e
push 1
mov edx, 0x15000018
mov ecx, edi
call fcn.0042065e
push 1
mov edx, 0x16000017
mov ecx, edi
call fcn.0042065e
push 1
mov edx, 0x12000019
mov ecx, edi
call fcn.0042065e
mov edx, 0x1600001e
push 1
mov ecx, edi
call fcn.0042065e
push 8
lea eax, [esp + 0x7c]
mov edx, esi
push eax
xor eax, eax
mov ecx, edi
push eax
call fcn.00420448
mov esi, eax
test esi, esi
jns 0x415d29
push dword [esp + 0x40]
jmp 0x415fab
cmp dword [esp + 0xbc], 0
je 0x415d51
mov edx, dword [esp + 0x5c]
lea eax, [esp + 0xd8]
push 8
push eax
xor eax, eax
mov ecx, edi
push eax
call fcn.00420448
mov esi, eax
test esi, esi
js 0x415d20
cmp dword [esp + 0xa8], 0
je 0x415d79
mov edx, dword [esp + 0x60]
lea eax, [esp + 0xe0]
push 8
push eax
xor eax, eax
mov ecx, edi
push eax
call fcn.00420448
mov esi, eax
test esi, esi
js 0x415d20
mov eax, dword [esp + 0x90]
test eax, eax
je 0x415dcc
mov ecx, eax
xor esi, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x415d8b
sub ecx, edx
sar ecx, 1
neg ebx
sbb ebx, ebx
and ebx, 0x1000011c
lea eax, [ecx*2 + 2]
mov ecx, edi
push eax
mov eax, dword [esp + 0x94]
push eax
push esi
lea edx, [ebx + 0x12000016]
call fcn.00420448
mov esi, eax
test esi, esi
js 0x415fa6
mov edx, dword [esp + 0x28]
test edx, edx
je 0x415e23
mov ecx, edx
xor ebx, ebx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x415ddb
sub ecx, esi
sar ecx, 1
lea eax, [ecx*2 + 2]
mov ecx, edi
push eax
push edx
mov edx, dword [esp + 0x6c]
push ebx
call fcn.00420448
mov esi, eax
test esi, esi
jns 0x415e23
push 0xc1008026
call fcn.0041ba12
pop ecx
push esi
call dword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
mov ecx, eax
call fcn.0041ba5a
jmp 0x415fb1
mov ebx, dword [esp + 0x68]
test ebx, ebx
je 0x415e49
mov edx, dword [esp + 0x6c]
lea eax, [esp + 0xc8]
push 8
push eax
xor eax, eax
mov ecx, edi
push eax
call fcn.00420448
mov esi, eax
test esi, esi
js 0x415e05
cmp dword [esp + 0x48], 0
je 0x415e6e
mov edx, dword [esp + 0x70]
lea eax, [esp + 0xe8]
push 8
push eax
xor eax, eax
mov ecx, edi
push eax
call fcn.00420448
mov esi, eax
test esi, esi
js 0x415e05
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x415ea5
mov eax, dword [esp + 0x94]
test eax, eax
je 0x415ea5
mov edx, dword [esp + 0x38]
lea eax, [eax*2 + 2]
push eax
push ecx
xor eax, eax
mov ecx, edi
push eax
call fcn.00420448
mov esi, eax
test esi, esi
js 0x415e05
cmp dword [esp + 0xb0], 0
je 0x415ed2
push 8
lea eax, [esp + 0xf4]
mov edx, 0x250000ff
push eax
xor eax, eax
mov ecx, edi
push eax
call fcn.00420448
mov esi, eax
test esi, esi
js 0x415e05
mov edx, dword [esp + 0x24]
test edx, edx
je 0x415f14
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0xc4]
jne 0x415edf
sub ecx, esi
sar ecx, 1
lea eax, [ecx*2 + 2]
mov ecx, edi
push eax
push edx
mov edx, dword [esp + 0x4c]
xor eax, eax
push eax
call fcn.00420448
mov esi, eax
test esi, esi
js 0x415e05
test ebx, ebx
jne 0x415f1e
cmp dword [esp + 0x48], ebx
je 0x415f3b
mov edx, dword [esp + 0x74]
lea eax, [esp + 0x20]
push 2
push eax
xor ebx, ebx
mov ecx, edi
push ebx
call fcn.00420448
mov esi, eax
test esi, esi
jns 0x415f3d
jmp 0x415fa6
xor ebx, ebx
cmp byte [esp + 0x14], 0
je 0x415f5e
push 2
lea eax, [esp + 0x18]
mov edx, 0x1600001e
push eax
push ebx
mov ecx, edi
call fcn.00420448
mov esi, eax
test esi, esi
js 0x415fa6
cmp dword [esp + 0xb4], 0
je 0x415f85
push 8
lea eax, [esp + 0xa4]
mov edx, 0x15000018
push eax
push ebx
mov ecx, edi
call fcn.00420448
mov esi, eax
test esi, esi
js 0x415fa6
cmp byte [esp + 0x18], 0
je 0x415fb1
push 2
lea eax, [esp + 0x1c]
mov edx, 0x16000017
push eax
push ebx
mov ecx, edi
call fcn.00420448
mov esi, eax
test esi, esi
jns 0x415fb1
push 0xc1008026
call fcn.0041ba12
pop ecx
test edi, edi
je 0x415fbc
mov ecx, edi
call fcn.0041fd66
cmp dword [esp + 0x2c], 0
je 0x415fd2
mov ecx, dword [esp + 0x2c]
call fcn.0041e793
test esi, esi
js 0x415fd2
mov esi, eax
push dword [esp + 0x30]
mov eax, dword fs:[0x30]
xor ebx, ebx
push ebx
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x416004
push eax
mov eax, dword fs:[0x30]
push ebx
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
test esi, esi
js 0x414f17
mov edi, dword [esp + 0x24]
test edi, edi
je 0x414f17
mov ecx, 0x405340
call fcn.0041d946
mov ecx, edi
call fcn.0041d946
mov ecx, 0x40533c
call fcn.0041d946
jmp 0x414f25
call fcn.00437bca
int3