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

Disassembly:
sub esp, 0x3d8
mov eax, dword [0x430240]
xor eax, esp
mov dword [esp + 0x3d4], eax
xor eax, eax
push ebx
push ebp
push esi
push 0x11c
push 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
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x40]
mov esi, ecx
push eax
mov dword [esp + 0x18], esi
call fcn.00415be0
add esp, 0xc
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x3c], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov ebp, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.GetNativeSystemInfo
push str.kernel32.dll
call ebp
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
test eax, eax
je 0x40ab31
lea edx, [esp + 0x14]
push edx
call eax
jmp 0x40ab3c
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0x1ea
lea ecx, [esp + 0x15a]
push 0
push ecx
mov word [esp + 0x160], 0
call fcn.00415be0
mov eax, dword [esp + 0x54]
add esp, 0xc
cmp eax, 1
je 0x40ab8c
cmp eax, 2
jne 0x40ab72
cmp dword [esp + 0x3c], 4
ja 0x40ab8c
pop esi
pop ebp
xor al, al
pop ebx
mov ecx, dword [esp + 0x3d4]
xor ecx, esp
call fcn.004138c3
add esp, 0x3d8
ret
push 0xf6
lea edx, [esp + 0x158]
push str.Microsoft
push edx
call fcn.00414d29
add esp, 0xc
cmp dword [esp + 0x48], 1
jne 0x40acd3
mov eax, dword [esp + 0x40]
cmp eax, 0x5a
mov byte [esi + 0xa4], 1
jne 0x40ac10
lea eax, [esp + 0x154]
add eax, 0xfffffffe
jmp 0x40abd0
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40abd0
mov ecx, dword [str.Windows_Me]
mov edx, dword [0x42b930]
mov dword [eax], ecx
mov ecx, dword [0x42b934]
mov dword [eax + 4], edx
mov edx, dword [0x42b938]
mov dword [eax + 8], ecx
mov ecx, dword [0x42b93c]
mov dword [eax + 0xc], edx
mov edx, dword [0x42b940]
jmp 0x40ac9b
cmp eax, 0xa
lea eax, [esp + 0x154]
jne 0x40ac5d
add eax, 0xfffffffe
nop
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40ac20
mov ecx, dword [str.Windows_98]
mov edx, dword [0x42b948]
mov dword [eax], ecx
mov ecx, dword [0x42b94c]
mov dword [eax + 4], edx
mov edx, dword [0x42b950]
mov dword [eax + 8], ecx
mov ecx, dword [0x42b954]
mov dword [eax + 0xc], edx
mov edx, dword [0x42b958]
jmp 0x40ac9b
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40ac60
mov ecx, dword [str.Windows_95]
mov edx, dword [0x42b960]
mov dword [eax], ecx
mov ecx, dword [0x42b964]
mov dword [eax + 4], edx
mov edx, dword [0x42b968]
mov dword [eax + 8], ecx
mov ecx, dword [0x42b96c]
mov dword [eax + 0xc], edx
mov edx, dword [0x42b970]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
lea eax, [esp + 0x154]
lea edx, [eax + 2]
jmp 0x40acb0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40acb0
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x158]
push eax
add esi, 0x88
jmp 0x40b835
cmp dword [esp + 0x3c], 6
push edi
jne 0x40b27a
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x40ad42
lea edi, [esp + 0x158]
mov ecx, esi
add edi, 0xfffffffe
cmp byte [esp + 0x156], 1
mov byte [ecx + 0xa4], 0x10
jne 0x40ad23
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40ad04
mov ecx, 7
mov esi, str.Windows_Vista
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40adf9
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40ad23
mov ecx, 0xa
mov esi, str.Windows_Server_2008
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40adf9
cmp eax, 1
jne 0x40ad9e
mov edx, esi
lea eax, [esp + 0x158]
mov byte [edx + 0xa4], 0x20
add eax, 0xfffffffe
lea ebx, [ebx]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40ad60
mov ecx, dword [str.Windows_7]
mov edx, dword [0x42b9c4]
mov dword [eax], ecx
mov ecx, dword [0x42b9c8]
mov dword [eax + 4], edx
mov edx, dword [0x42b9cc]
mov dword [eax + 8], ecx
mov ecx, dword [0x42b9d0]
mov dword [eax + 0xc], edx
mov dx, word [0x42b9d4]
jmp 0x40adf2
cmp eax, 2
jne 0x40adf9
mov eax, esi
mov byte [eax + 0xa4], 0x40
lea eax, [esp + 0x158]
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40adb6
mov ecx, dword [str.Windows_8]
mov edx, dword [0x42b9dc]
mov dword [eax], ecx
mov ecx, dword [0x42b9e0]
mov dword [eax + 4], edx
mov edx, dword [0x42b9e4]
mov dword [eax + 8], ecx
mov ecx, dword [0x42b9e8]
mov dword [eax + 0xc], edx
mov dx, word [0x42b9ec]
mov dword [eax + 0x10], ecx
mov word [eax + 0x14], dx
push str.GetProductInfo
push str.kernel32.dll
mov dword [esp + 0x1c], 0
call ebp
push eax
call ebx
test eax, eax
je 0x40ae2b
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x48]
push edx
push ecx
push ecx
mov ecx, dword [esp + 0x50]
push ecx
call eax
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
cmp eax, 0x30
ja case.0x40ae42.4
movzx edx, byte [eax + 0x40b8a0]
jmp dword [edx*4 + 0x40b854]
lea edi, [esp + 0x158]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40ae53
mov ecx, 8
mov esi, str.Ultimate_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40ae80
mov ecx, 0xa
mov esi, str.Home_Premium_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40aeb0
mov ecx, 9
mov esi, str.Home_Basic_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40aee0
mov ecx, 9
mov esi, str.Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40af10
mov ecx, 8
mov esi, str.Business_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40af40
mov ecx, 8
mov esi, str.Starter_Edition
rep movsd dword es:[edi], dword [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
jmp 0x40af70
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40af70
mov ecx, 0xb
mov esi, str.Cluster_Server_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40afa0
mov ecx, 9
mov esi, str.Datacenter_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40afd0
mov ecx, 0x13
mov esi, str.Datacenter_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b000
mov ecx, 9
mov esi, str.Enterprise_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b030
mov ecx, 0x13
mov esi, str.Enterprise_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b060
mov ecx, 0x16
mov esi, str.Enterprise_Edition_for_Itanium_based_Systems
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b090
mov ecx, 0xb
mov esi, str.Small_Business_Server
rep movsd dword es:[edi], dword [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
jmp 0x40b0c0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b0c0
mov ecx, 0x13
mov esi, str.Small_Business_Server_Premium_Edition
rep movsd dword es:[edi], dword [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
jmp 0x40b0f0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b0f0
mov ecx, 8
mov esi, str.Standard_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b120
mov ecx, 0x12
mov esi, str.Standard_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b150
mov ecx, 9
mov esi, str.Web_Server_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea edi, [esp + 0x158]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b176
mov ecx, 0xa
mov esi, str.Professional_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b1cf
lea eax, [esp + 0x158]
add eax, 0xfffffffe
lea esp, [esp]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40b1a0
mov ecx, dword [str.Unknown]
mov edx, dword [0x42bd7c]
mov dword [eax], ecx
mov ecx, dword [0x42bd80]
mov dword [eax + 4], edx
mov edx, dword [0x42bd84]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x18]
cmp ax, 9
jne 0x40b22c
mov eax, dword [esp + 0x10]
mov byte [eax + 0xa5], 1
lea eax, [esp + 0x158]
add eax, 0xfffffffe
mov edi, edi
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40b1f0
mov ecx, dword [str.__64_bit]
mov edx, dword [0x42bd8c]
mov dword [eax], ecx
mov ecx, dword [0x42bd90]
mov dword [eax + 4], edx
mov edx, dword [0x42bd94]
mov dword [eax + 8], ecx
mov cx, word [0x42bd98]
mov dword [eax + 0xc], edx
mov word [eax + 0x10], cx
jmp 0x40b27a
test ax, ax
jne 0x40b27a
lea eax, [esp + 0x158]
add eax, 0xfffffffe
jmp 0x40b240
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40b240
mov edx, dword [str.__32_bit]
mov ecx, dword [0x42bda0]
mov dword [eax], edx
mov edx, dword [0x42bda4]
mov dword [eax + 4], ecx
mov ecx, dword [0x42bda8]
mov dword [eax + 8], edx
mov dx, word [0x42bdac]
mov dword [eax + 0xc], ecx
mov word [eax + 0x10], dx
cmp dword [esp + 0x40], 5
mov ebp, dword [esp + 0x10]
jne 0x40b725
mov eax, dword [esp + 0x44]
cmp eax, 2
jne 0x40b5f5
push 0x59
mov byte [ebp + 0xa4], 8
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x154]
je 0x40b2df
lea edi, [esp + 0x158]
add edi, 0xfffffffe
mov edi, edi
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b2c0
mov ecx, 0xc
mov esi, str.Windows_Server_2003_R2_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b368
cmp bx, 0x2000
jne 0x40b308
lea edi, [esp + 0x158]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b2f0
mov ecx, 0xe
mov esi, str.Windows_Storage_Server_2003
jmp 0x40b366
cmp byte [esp + 0x156], 1
jne 0x40b33f
cmp dx, 9
jne 0x40b33f
lea edi, [esp + 0x158]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b322
mov ecx, 0x12
mov esi, str.Windows_XP_Professional_x64_Edition
rep movsd dword es:[edi], dword [esi]
jmp 0x40b55a
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b350
mov ecx, 0xb
mov esi, str.Windows_Server_2003_
rep movsd dword es:[edi], dword [esi]
cmp byte [esp + 0x156], 1
je 0x40b55a
cmp dx, 6
jne 0x40b3db
test bl, bl
mov byte [ebp + 0xa5], 1
jns 0x40b3ac
lea edi, [esp + 0x158]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b391
mov ecx, 0x16
mov esi, str.Datacenter_Edition_for_Itanium_based_Systems
jmp 0x40b556
test bl, 2
je 0x40b55a
lea edi, [esp + 0x158]
add edi, 0xfffffffe
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b3c0
mov ecx, 0x16
mov esi, str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x40b556
cmp dx, 9
jne 0x40b44c
lea edi, [esp + 0x158]
add edi, 0xfffffffe
test bl, bl
mov byte [ebp + 0xa5], 1
jns 0x40b411
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b3f6
mov ecx, 0xb
mov esi, str.Datacenter_x64_Edition
jmp 0x40b556
test bl, 2
je 0x40b431
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b416
mov ecx, 0xb
mov esi, str.Enterprise_x64_Edition
jmp 0x40b556
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b431
mov ecx, 0xa
mov esi, str.Standard_x64_Edition
jmp 0x40b556
test ebx, 0x4000
je 0x40b47d
lea edi, [esp + 0x158]
add edi, 0xfffffffe
mov edi, edi
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b460
mov ecx, 0xc
mov esi, str.Compute_Cluster_Edition
rep movsd dword es:[edi], dword [esi]
jmp 0x40b55a
test bl, bl
jns 0x40b4ab
lea edi, [esp + 0x158]
add edi, 0xfffffffe
jmp 0x40b490
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b490
mov ecx, 9
mov esi, str.Datacenter_Edition
jmp 0x40b556
test bl, 2
je 0x40b4db
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea ebx, [ebx]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b4c0
mov ecx, 9
mov esi, str.Enterprise_Edition
jmp 0x40b556
test ebx, 0x400
je 0x40b533
lea eax, [esp + 0x158]
add eax, 0xfffffffe
lea ecx, [ecx]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40b4f0
mov ecx, dword [str.Web_Edition]
mov edx, dword [0x42bfb4]
mov dword [eax], ecx
mov ecx, dword [0x42bfb8]
mov dword [eax + 4], edx
mov edx, dword [0x42bfbc]
mov dword [eax + 8], ecx
mov ecx, dword [0x42bfc0]
mov dword [eax + 0xc], edx
mov edx, dword [0x42bfc4]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
jmp 0x40b55a
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea ecx, [ecx]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b540
mov ecx, 8
mov esi, str.Standard_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp dword [esp + 0x40], 5
jne 0x40b725
mov eax, dword [esp + 0x44]
cmp eax, 1
jne 0x40b620
lea eax, [esp + 0x158]
mov byte [ebp + 0xa4], 4
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40b583
mov ecx, dword [str.Windows_XP]
mov edx, dword [0x42bfcc]
mov dword [eax], ecx
mov ecx, dword [0x42bfd0]
mov dword [eax + 4], edx
mov edx, dword [0x42bfd4]
mov dword [eax + 8], ecx
mov ecx, dword [0x42bfd8]
mov dword [eax + 0xc], edx
mov edx, dword [0x42bfdc]
lea edi, [esp + 0x158]
add edi, 0xfffffffe
test ebx, 0x200
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
je 0x40b601
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b5d6
mov ecx, 6
mov esi, str.Home_Edition
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b725
mov ebx, dword [esp + 0x154]
jmp 0x40b569
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b601
mov ecx, 6
mov esi, str.Professional
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b725
test eax, eax
jne 0x40b725
lea edi, [esp + 0x158]
mov byte [ebp + 0xa4], 2
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b640
cmp byte [esp + 0x156], 1
mov ecx, 7
mov esi, str.Windows_2000
rep movsd dword es:[edi], dword [esi]
jne 0x40b68f
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b670
mov ecx, 6
mov esi, str.Professional
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40b725
test bl, bl
jns 0x40b6ba
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea ecx, [ecx]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b6a0
mov ecx, 9
mov esi, str.Datacenter_Server
rep movsd dword es:[edi], dword [esi]
jmp 0x40b725
test bl, 2
je 0x40b6ea
lea edi, [esp + 0x158]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b6d0
mov ecx, 8
mov esi, str.Advanced_Server
rep movsd dword es:[edi], dword [esi]
jmp 0x40b725
lea eax, [esp + 0x158]
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40b6f4
mov ecx, dword [str.Server]
mov edx, dword [0x42c07c]
mov dword [eax], ecx
mov ecx, dword [0x42c080]
mov dword [eax + 4], edx
mov dx, word [0x42c084]
mov dword [eax + 8], ecx
mov word [eax + 0xc], dx
lea eax, [esp + 0x50]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40b730
sub eax, edx
sar eax, 1
je 0x40b7ac
lea edi, [esp + 0x158]
add edi, 0xfffffffe
jmp 0x40b750
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40b750
mov eax, dword [0x42b72c]
mov dword [edi], eax
lea eax, [esp + 0x50]
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40b770
lea edi, [esp + 0x158]
sub eax, edx
add edi, 0xfffffffe
jmp 0x40b790
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x40b790
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x48]
push ecx
push str.__build__d_
lea edx, [esp + 0x34c]
call fcn.0040c250
lea eax, [esp + 0x34c]
add esp, 8
mov edx, eax
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40b7d0
lea edi, [esp + 0x158]
sub eax, edx
add edi, 0xfffffffe
jmp 0x40b7f0
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x40b7f0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [esp + 0x158]
rep movsb byte es:[edi], byte [esi]
lea edx, [eax + 2]
pop edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40b817
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x158]
push edx
lea esi, [ebp + 0x88]
call fcn.00403260
mov ecx, dword [esp + 0x3e0]
pop esi
pop ebp
pop ebx
xor ecx, esp
mov al, 1
call fcn.004138c3
add esp, 0x3d8
ret