Function at 0x405100
Capabilities:
Check os version
Get system information on windows

Disassembly:
sub esp, 0x11c
mov eax, dword [0x45c5b0]
xor eax, esp
mov dword [esp + 0x118], eax
xor eax, eax
push ebp
mov ebp, dword [esp + 0x124]
push 0x9c
push eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x38]
push eax
call fcn.00434290
add esp, 0xc
lea ecx, [esp + 0x30]
push ecx
mov dword [esp + 0x34], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x405187
mov eax, 1
pop ebp
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.00430bec
add esp, 0x11c
ret
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push edi
push str.GetNativeSystemInfo
push str.kernel32.dll
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call edi
test eax, eax
je 0x4051b1
lea edx, [esp + 0x10]
push edx
call eax
jmp 0x4051bc
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [esp + 0x48], 2
jne 0x405c93
cmp dword [esp + 0x3c], 4
jbe 0x405c93
push 0xb
push str.Microsoft
push ebp
call fcn.004322f0
add esp, 0xc
cmp dword [esp + 0x3c], 6
jne 0x405712
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x40527f
mov eax, ebp
dec eax
cmp byte [esp + 0xd2], 1
jne 0x405240
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405206
mov ecx, dword [str.Windows_Vista]
mov dword [eax], ecx
mov edx, dword [0x44e188]
mov dword [eax + 4], edx
mov ecx, dword [0x44e18c]
mov dword [eax + 8], ecx
mov dx, word [0x44e190]
mov word [eax + 0xc], dx
mov cl, byte [0x44e192]
mov byte [eax + 0xe], cl
jmp 0x4052b4
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405240
mov edx, dword [str.Windows_Server_2008]
mov dword [eax], edx
mov ecx, dword [0x44e198]
mov dword [eax + 4], ecx
mov edx, dword [0x44e19c]
mov dword [eax + 8], edx
mov ecx, dword [0x44e1a0]
mov dword [eax + 0xc], ecx
mov edx, dword [0x44e1a4]
mov dword [eax + 0x10], edx
mov cl, byte [0x44e1a8]
mov byte [eax + 0x14], cl
jmp 0x4052b4
cmp eax, 1
jne 0x4052b4
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405287
mov edx, dword [str.Windows_7]
mov dword [eax], edx
mov ecx, dword [0x44e1b0]
mov dword [eax + 4], ecx
mov dx, word [0x44e1b4]
mov word [eax + 8], dx
mov cl, byte [0x44e1b6]
mov byte [eax + 0xa], cl
push str.GetProductInfo
push str.kernel32.dll
call esi
push eax
call edi
test eax, eax
je 0x4052d6
lea edx, [esp + 0xc]
push edx
push 0
push 0
push 0
push 6
call eax
mov eax, dword [esp + 0xc]
dec eax
cmp eax, 0x18
ja case.0x4052e4.5
jmp dword [eax*4 + 0x405cb0]
mov eax, ebp
dec eax
mov edi, edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4052f0
mov ecx, dword [str.Ultimate_Edition]
mov dword [eax], ecx
mov edx, dword [0x44e1cc]
mov dword [eax + 4], edx
mov ecx, dword [0x44e1d0]
mov dword [eax + 8], ecx
mov edx, dword [0x44e1d4]
mov dword [eax + 0xc], edx
mov cl, byte [0x44e1d8]
mov byte [eax + 0x10], cl
jmp 0x4056ad
mov eax, ebp
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405330
mov edx, dword [str.Home_Premium_Edition]
mov dword [eax], edx
mov ecx, dword [0x44e1e0]
mov dword [eax + 4], ecx
mov edx, dword [0x44e1e4]
mov dword [eax + 8], edx
mov ecx, dword [0x44e1e8]
mov dword [eax + 0xc], ecx
mov edx, dword [0x44e1ec]
mov dword [eax + 0x10], edx
mov cl, byte [0x44e1f0]
mov byte [eax + 0x14], cl
jmp 0x4056ad
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405375
mov edx, dword [str.Home_Basic_Edition]
mov dword [eax], edx
mov ecx, dword [0x44e1f8]
mov dword [eax + 4], ecx
mov edx, dword [0x44e1fc]
mov dword [eax + 8], edx
mov ecx, dword [0x44e200]
mov dword [eax + 0xc], ecx
mov dx, word [0x44e204]
mov word [eax + 0x10], dx
mov cl, byte [0x44e206]
mov byte [eax + 0x12], cl
jmp 0x4056ad
mov eax, ebp
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4053c0
mov edx, dword [str.Enterprise_Edition]
mov dword [eax], edx
mov ecx, dword [0x44e20c]
mov dword [eax + 4], ecx
mov edx, dword [0x44e210]
mov dword [eax + 8], edx
mov ecx, dword [0x44e214]
mov dword [eax + 0xc], ecx
mov dx, word [0x44e218]
mov word [eax + 0x10], dx
mov cl, byte [0x44e21a]
mov byte [eax + 0x12], cl
jmp 0x4056ad
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405407
mov edx, dword [str.Business_Edition]
mov dword [eax], edx
mov ecx, dword [0x44e220]
mov dword [eax + 4], ecx
mov edx, dword [0x44e224]
mov dword [eax + 8], edx
mov ecx, dword [0x44e228]
mov dword [eax + 0xc], ecx
mov dl, byte [0x44e22c]
mov byte [eax + 0x10], dl
jmp 0x4056ad
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405443
mov ecx, dword [str.Starter_Edition]
mov dword [eax], ecx
mov edx, dword [0x44e234]
mov dword [eax + 4], edx
mov ecx, dword [0x44e238]
mov dword [eax + 8], ecx
mov edx, dword [0x44e23c]
mov dword [eax + 0xc], edx
jmp 0x4056ad
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405476
mov ecx, 5
mov esi, str.Cluster_Server_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x4056ad
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405495
mov ecx, dword [str.Datacenter_Edition]
mov dword [eax], ecx
mov edx, dword [0x44e25c]
mov dword [eax + 4], edx
mov ecx, dword [0x44e260]
mov dword [eax + 8], ecx
mov edx, dword [0x44e264]
mov dword [eax + 0xc], edx
mov cx, word [0x44e268]
mov word [eax + 0x10], cx
mov dl, byte [0x44e26a]
mov byte [eax + 0x12], dl
jmp 0x4056ad
mov edi, ebp
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4054e0
mov ecx, 9
mov esi, str.Datacenter_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x4056ad
mov eax, ebp
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405500
mov ecx, dword [str.Enterprise_Edition]
mov dword [eax], ecx
mov edx, dword [0x44e20c]
mov dword [eax + 4], edx
mov ecx, dword [0x44e210]
mov dword [eax + 8], ecx
mov edx, dword [0x44e214]
mov dword [eax + 0xc], edx
mov cx, word [0x44e218]
mov word [eax + 0x10], cx
mov dl, byte [0x44e21a]
mov byte [eax + 0x12], dl
jmp 0x4056ad
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405547
mov ecx, 9
mov esi, str.Enterprise_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x4056ad
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405566
mov ecx, 0xb
mov esi, str.Enterprise_Edition_for_Itanium_based_Systems
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x4056ad
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405583
mov ecx, dword [str.Small_Business_Server]
mov dword [eax], ecx
mov edx, dword [0x44e2f0]
mov dword [eax + 4], edx
mov ecx, dword [0x44e2f4]
mov dword [eax + 8], ecx
mov edx, dword [0x44e2f8]
mov dword [eax + 0xc], edx
mov ecx, dword [0x44e2fc]
mov dword [eax + 0x10], ecx
mov dx, word [0x44e300]
mov word [eax + 0x14], dx
jmp 0x4056ad
mov edi, ebp
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4055d0
mov ecx, 9
mov esi, str.Small_Business_Server_Premium_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x4056ad
mov eax, ebp
dec eax
mov edi, edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4055f0
mov ecx, dword [str.Standard_Edition]
mov dword [eax], ecx
mov edx, dword [0x44e330]
mov dword [eax + 4], edx
mov ecx, dword [0x44e334]
mov dword [eax + 8], ecx
mov edx, dword [0x44e338]
mov dword [eax + 0xc], edx
mov cl, byte [0x44e33c]
mov byte [eax + 0x10], cl
jmp 0x4056ad
mov edi, ebp
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405630
mov ecx, 9
mov esi, str.Standard_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x4056ad
mov eax, ebp
dec eax
lea ebx, [ebx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405650
mov edx, dword [str.Web_Server_Edition]
mov dword [eax], edx
mov ecx, dword [0x44e36c]
mov dword [eax + 4], ecx
mov edx, dword [0x44e370]
mov dword [eax + 8], edx
mov ecx, dword [0x44e374]
mov dword [eax + 0xc], ecx
mov dx, word [0x44e378]
mov word [eax + 0x10], dx
mov cl, byte [0x44e37a]
mov byte [eax + 0x12], cl
jmp 0x4056ad
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405694
mov edx, dword [str.Unknown]
mov dword [eax], edx
mov ecx, dword [0x44e380]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x10]
cmp ax, 9
jne 0x4056e4
mov eax, ebp
dec eax
lea ebx, [ebx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4056c0
mov edx, dword [str.__64_bit]
mov dword [eax], edx
mov ecx, dword [0x44e388]
mov dword [eax + 4], ecx
mov dl, byte [0x44e38c]
mov byte [eax + 8], dl
jmp 0x405712
test ax, ax
jne 0x405712
mov eax, ebp
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4056f0
mov ecx, dword [str.__32_bit]
mov dword [eax], ecx
mov edx, dword [0x44e394]
mov dword [eax + 4], edx
mov cl, byte [0x44e398]
mov byte [eax + 8], cl
cmp dword [esp + 0x3c], 5
jne 0x405bd6
mov eax, dword [esp + 0x40]
push ebx
cmp eax, 2
jne 0x405ab0
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xd4]
test eax, eax
je 0x40575f
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405745
mov ecx, 6
mov esi, str.Windows_Server_2003_R2_
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x4057ff
mov eax, 0x2000
cmp bx, ax
jne 0x405789
mov edi, ebp
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405770
mov ecx, 7
mov esi, str.Windows_Storage_Server_2003
rep movsd dword es:[edi], dword [esi]
jmp 0x4057ff
cmp byte [esp + 0xd6], 1
jne 0x4057b9
cmp dx, 9
jne 0x4057b9
mov edi, ebp
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4057a0
mov ecx, 9
mov esi, str.Windows_XP_Professional_x64_Edition
rep movsd dword es:[edi], dword [esi]
jmp 0x405a38
mov eax, ebp
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4057c0
mov ecx, dword [str.Windows_Server_2003_]
mov dword [eax], ecx
mov ecx, dword [0x44e3fc]
mov dword [eax + 4], ecx
mov ecx, dword [0x44e400]
mov dword [eax + 8], ecx
mov ecx, dword [0x44e404]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x44e408]
mov dword [eax + 0x10], ecx
mov cx, word [0x44e40c]
mov word [eax + 0x14], cx
cmp byte [esp + 0xd6], 1
je 0x405a38
cmp dx, 6
jne 0x405860
test bl, bl
jns 0x40583a
mov edi, ebp
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405820
mov ecx, 0xb
mov esi, str.Datacenter_Edition_for_Itanium_based_Systems
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x405a38
test bl, 2
je 0x405a38
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405846
mov ecx, 0xb
mov esi, str.Enterprise_Edition_for_Itanium_based_Systems
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x405a38
cmp dx, 9
jne 0x4058f6
test bl, bl
jns 0x40588d
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405871
mov ecx, 5
mov esi, str.Datacenter_x64_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x405a38
test bl, 2
je 0x4058b1
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405895
mov ecx, 5
mov esi, str.Enterprise_x64_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x405a38
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4058b4
mov edx, dword [str.Standard_x64_Edition]
mov dword [eax], edx
mov ecx, dword [0x44e474]
mov dword [eax + 4], ecx
mov edx, dword [0x44e478]
mov dword [eax + 8], edx
mov ecx, dword [0x44e47c]
mov dword [eax + 0xc], ecx
mov edx, dword [0x44e480]
mov dword [eax + 0x10], edx
mov cl, byte [0x44e484]
mov byte [eax + 0x14], cl
jmp 0x405a38
mov eax, ebp
dec eax
test ebx, 0x4000
je 0x405943
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405901
mov edx, dword [str.Compute_Cluster_Edition]
mov dword [eax], edx
mov ecx, dword [0x44e48c]
mov dword [eax + 4], ecx
mov edx, dword [0x44e490]
mov dword [eax + 8], edx
mov ecx, dword [0x44e494]
mov dword [eax + 0xc], ecx
mov edx, dword [0x44e498]
mov dword [eax + 0x10], edx
mov ecx, dword [0x44e49c]
mov dword [eax + 0x14], ecx
jmp 0x405a38
test bl, bl
jns 0x40598b
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405947
mov edx, dword [str.Datacenter_Edition]
mov dword [eax], edx
mov ecx, dword [0x44e25c]
mov dword [eax + 4], ecx
mov edx, dword [0x44e260]
mov dword [eax + 8], edx
mov ecx, dword [0x44e264]
mov dword [eax + 0xc], ecx
mov dx, word [0x44e268]
mov word [eax + 0x10], dx
mov cl, byte [0x44e26a]
mov byte [eax + 0x12], cl
jmp 0x405a38
test bl, 2
je 0x4059d4
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405990
mov edx, dword [str.Enterprise_Edition]
mov dword [eax], edx
mov ecx, dword [0x44e20c]
mov dword [eax + 4], ecx
mov edx, dword [0x44e210]
mov dword [eax + 8], edx
mov ecx, dword [0x44e214]
mov dword [eax + 0xc], ecx
mov dx, word [0x44e218]
mov word [eax + 0x10], dx
mov cl, byte [0x44e21a]
mov byte [eax + 0x12], cl
jmp 0x405a38
test ebx, 0x400
je 0x405a04
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4059e0
mov edx, dword [str.Web_Edition]
mov dword [eax], edx
mov ecx, dword [0x44e4a4]
mov dword [eax + 4], ecx
mov edx, dword [0x44e4a8]
mov dword [eax + 8], edx
jmp 0x405a38
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405a04
mov ecx, dword [str.Standard_Edition]
mov dword [eax], ecx
mov edx, dword [0x44e330]
mov dword [eax + 4], edx
mov ecx, dword [0x44e334]
mov dword [eax + 8], ecx
mov edx, dword [0x44e338]
mov dword [eax + 0xc], edx
mov cl, byte [0x44e33c]
mov byte [eax + 0x10], cl
cmp dword [esp + 0x40], 5
jne 0x405bd5
mov eax, dword [esp + 0x44]
cmp eax, 1
jne 0x405aca
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405a53
mov edx, dword [str.Windows_XP]
mov dword [eax], edx
mov ecx, dword [0x44e4b0]
mov dword [eax + 4], ecx
mov edx, dword [0x44e4b4]
mov dword [eax + 8], edx
mov eax, ebp
dec eax
test ebx, 0x200
je 0x405ac0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405a80
mov ecx, dword [str.Home_Edition]
mov dword [eax], ecx
mov edx, dword [0x44e4bc]
mov dword [eax + 4], edx
mov ecx, dword [0x44e4c0]
mov dword [eax + 8], ecx
mov dl, byte [0x44e4c4]
mov byte [eax + 0xc], dl
jmp 0x405bd5
mov ebx, dword [esp + 0xd4]
jmp 0x405a47
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405ac0
jmp 0x405b18
test eax, eax
jne 0x405bd5
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405ad5
mov ecx, dword [str.Windows_2000]
mov dword [eax], ecx
mov edx, dword [0x44e4dc]
mov dword [eax + 4], edx
mov ecx, dword [0x44e4e0]
mov dword [eax + 8], ecx
mov dx, word [0x44e4e4]
mov word [eax + 0xc], dx
mov eax, ebp
dec eax
cmp byte [esp + 0xd6], 1
jne 0x405b40
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405b10
mov ecx, dword [str.Professional]
mov dword [eax], ecx
mov edx, dword [0x44e4cc]
mov dword [eax + 4], edx
mov ecx, dword [0x44e4d0]
mov dword [eax + 8], ecx
mov dl, byte [0x44e4d4]
mov byte [eax + 0xc], dl
jmp 0x405bd5
test bl, bl
jns 0x405b7f
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405b44
mov ecx, dword [str.Datacenter_Server]
mov dword [eax], ecx
mov edx, dword [0x44e4ec]
mov dword [eax + 4], edx
mov ecx, dword [0x44e4f0]
mov dword [eax + 8], ecx
mov edx, dword [0x44e4f4]
mov dword [eax + 0xc], edx
mov cx, word [0x44e4f8]
mov word [eax + 0x10], cx
jmp 0x405bd5
test bl, 2
je 0x405bb1
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405b84
mov edx, dword [str.Advanced_Server]
mov dword [eax], edx
mov ecx, dword [0x44e500]
mov dword [eax + 4], ecx
mov edx, dword [0x44e504]
mov dword [eax + 8], edx
mov ecx, dword [0x44e508]
mov dword [eax + 0xc], ecx
jmp 0x405bd5
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405bb1
mov edx, dword [str.Server]
mov dword [eax], edx
mov cx, word [0x44e510]
mov word [eax + 4], cx
mov dl, byte [0x44e512]
mov byte [eax + 6], dl
pop ebx
lea eax, [esp + 0x4c]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405be0
sub eax, edx
je 0x405c2b
mov edi, ebp
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405bf0
mov ax, word [0x44e514]
mov word [edi], ax
lea eax, [esp + 0x4c]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x405c07
mov edi, ebp
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x405c15
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x44]
push ecx
lea edx, [esp + 0xd8]
push str.__build__d_
push edx
call fcn.00431a4a
lea eax, [esp + 0xe0]
add esp, 0xc
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x405c50
sub eax, ecx
dec ebp
mov esi, ecx
mov edi, ebp
mov edi, edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x405c60
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
mov eax, 1
pop ebp
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.00430bec
add esp, 0x11c
ret
mov ecx, dword [esp + 0x124]
pop edi
pop esi
pop ebp
xor ecx, esp
xor eax, eax
call fcn.00430bec
add esp, 0x11c
ret