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

Disassembly:
sub esp, 0x11c
mov eax, dword [0x45c5d0]
xor eax, esp
mov dword [esp + 0x118], eax
xor eax, eax
push ebp
mov ebp, dword [esp + 0x124]
push esi
push 0x9c
push 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
mov dword [esp + 0x34], eax
lea eax, [esp + 0x3c]
push eax
xor esi, esi
call fcn.00434d10
add esp, 0xc
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x406609
lea eax, [esi + 1]
pop esi
pop ebp
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.0043164a
add esp, 0x11c
ret
push ebx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push str.GetNativeSystemInfo
push str.kernel32.dll
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
test eax, eax
je 0x406633
lea edx, [esp + 0x14]
push edx
call eax
jmp 0x40663e
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [esp + 0x4c], 2
jne 0x40717d
cmp dword [esp + 0x40], 4
jbe 0x40717d
push 0xb
push str.Microsoft
push ebp
call fcn.00432d70
add esp, 0xc
cmp dword [esp + 0x40], 6
jne 0x406c12
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x406702
mov eax, ebp
dec eax
cmp byte [esp + 0xd6], 1
jne 0x4066c3
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406688
mov ecx, dword [str.Windows_Vista]
mov dword [eax], ecx
mov edx, dword [0x44f094]
mov dword [eax + 4], edx
mov ecx, dword [0x44f098]
mov dword [eax + 8], ecx
mov dx, word [0x44f09c]
mov word [eax + 0xc], dx
mov cl, byte [0x44f09e]
mov byte [eax + 0xe], cl
jmp 0x406776
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4066c3
mov edx, dword [str.Windows_Server_2008]
mov dword [eax], edx
mov ecx, dword [0x44f0a4]
mov dword [eax + 4], ecx
mov edx, dword [0x44f0a8]
mov dword [eax + 8], edx
mov ecx, dword [0x44f0ac]
mov dword [eax + 0xc], ecx
mov edx, dword [0x44f0b0]
mov dword [eax + 0x10], edx
mov cl, byte [0x44f0b4]
mov byte [eax + 0x14], cl
jmp 0x406776
cmp eax, 1
jne 0x40673c
mov eax, ebp
dec eax
lea ebx, [ebx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406710
mov edx, dword [str.Windows_7]
mov dword [eax], edx
mov ecx, dword [0x44f0bc]
mov dword [eax + 4], ecx
mov dx, word [0x44f0c0]
mov word [eax + 8], dx
mov cl, byte [0x44f0c2]
jmp 0x40676e
cmp eax, 2
jne 0x406776
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406744
mov edx, dword [str.Windows_8]
mov dword [eax], edx
mov ecx, dword [0x44f0c8]
mov dword [eax + 4], ecx
mov dx, word [0x44f0cc]
mov word [eax + 8], dx
mov cl, byte [0x44f0ce]
mov esi, 1
mov byte [eax + 0xa], cl
push str.GetProductInfo
push str.kernel32.dll
call edi
push eax
call ebx
test eax, eax
je 0x406798
lea edx, [esp + 0x10]
push edx
push 0
push 0
push 0
push 6
call eax
mov eax, dword [esp + 0x10]
dec eax
cmp eax, 0x18
ja case.0x4067a6.5
jmp dword [eax*4 + 0x407198]
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4067b0
mov ecx, dword [str.Ultimate_Edition]
mov dword [eax], ecx
mov edx, dword [0x44f0e4]
mov dword [eax + 4], edx
mov ecx, dword [0x44f0e8]
mov dword [eax + 8], ecx
mov edx, dword [0x44f0ec]
mov dword [eax + 0xc], edx
mov cl, byte [0x44f0f0]
mov byte [eax + 0x10], cl
jmp 0x406bad
mov eax, ebp
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4067f0
mov edx, dword [str.Home_Premium_Edition]
mov dword [eax], edx
mov ecx, dword [0x44f0f8]
mov dword [eax + 4], ecx
mov edx, dword [0x44f0fc]
mov dword [eax + 8], edx
mov ecx, dword [0x44f100]
mov dword [eax + 0xc], ecx
mov edx, dword [0x44f104]
mov dword [eax + 0x10], edx
mov cl, byte [0x44f108]
mov byte [eax + 0x14], cl
jmp 0x406bad
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406835
mov edx, dword [str.Home_Basic_Edition]
mov dword [eax], edx
mov ecx, dword [0x44f110]
mov dword [eax + 4], ecx
mov edx, dword [0x44f114]
mov dword [eax + 8], edx
mov ecx, dword [0x44f118]
mov dword [eax + 0xc], ecx
mov dx, word [0x44f11c]
mov word [eax + 0x10], dx
mov cl, byte [0x44f11e]
mov byte [eax + 0x12], cl
jmp 0x406bad
mov eax, ebp
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406880
mov edx, dword [str.Enterprise_Edition]
mov dword [eax], edx
mov ecx, dword [0x44f124]
mov dword [eax + 4], ecx
mov edx, dword [0x44f128]
mov dword [eax + 8], edx
mov ecx, dword [0x44f12c]
mov dword [eax + 0xc], ecx
mov dx, word [0x44f130]
mov word [eax + 0x10], dx
mov cl, byte [0x44f132]
mov byte [eax + 0x12], cl
jmp 0x406bad
mov eax, ebp
dec eax
test esi, esi
je 0x406900
jmp 0x4068d0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4068d0
mov edx, dword [str.Professional]
mov dword [eax], edx
mov ecx, dword [0x44f138]
mov dword [eax + 4], ecx
mov edx, dword [0x44f13c]
mov dword [eax + 8], edx
mov cl, byte [0x44f140]
mov byte [eax + 0xc], cl
jmp 0x406bad
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406900
mov edx, dword [str.Business_Edition]
mov dword [eax], edx
mov ecx, dword [0x44f148]
mov dword [eax + 4], ecx
mov edx, dword [0x44f14c]
mov dword [eax + 8], edx
mov ecx, dword [0x44f150]
mov dword [eax + 0xc], ecx
mov dl, byte [0x44f154]
mov byte [eax + 0x10], dl
jmp 0x406bad
mov eax, ebp
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406940
mov ecx, dword [str.Starter_Edition]
mov dword [eax], ecx
mov edx, dword [0x44f15c]
mov dword [eax + 4], edx
mov ecx, dword [0x44f160]
mov dword [eax + 8], ecx
mov edx, dword [0x44f164]
mov dword [eax + 0xc], edx
jmp 0x406bad
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406973
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 0x406bad
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406992
mov ecx, dword [str.Datacenter_Edition]
mov dword [eax], ecx
mov edx, dword [0x44f184]
mov dword [eax + 4], edx
mov ecx, dword [0x44f188]
mov dword [eax + 8], ecx
mov edx, dword [0x44f18c]
mov dword [eax + 0xc], edx
mov cx, word [0x44f190]
mov word [eax + 0x10], cx
mov dl, byte [0x44f192]
mov byte [eax + 0x12], dl
jmp 0x406bad
mov edi, ebp
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4069e0
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 0x406bad
mov eax, ebp
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406a00
mov ecx, dword [str.Enterprise_Edition]
mov dword [eax], ecx
mov edx, dword [0x44f124]
mov dword [eax + 4], edx
mov ecx, dword [0x44f128]
mov dword [eax + 8], ecx
mov edx, dword [0x44f12c]
mov dword [eax + 0xc], edx
mov cx, word [0x44f130]
mov word [eax + 0x10], cx
mov dl, byte [0x44f132]
mov byte [eax + 0x12], dl
jmp 0x406bad
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406a47
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 0x406bad
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406a66
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 0x406bad
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406a83
mov ecx, dword [str.Small_Business_Server]
mov dword [eax], ecx
mov edx, dword [0x44f218]
mov dword [eax + 4], edx
mov ecx, dword [0x44f21c]
mov dword [eax + 8], ecx
mov edx, dword [0x44f220]
mov dword [eax + 0xc], edx
mov ecx, dword [0x44f224]
mov dword [eax + 0x10], ecx
mov dx, word [0x44f228]
mov word [eax + 0x14], dx
jmp 0x406bad
mov edi, ebp
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406ad0
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 0x406bad
mov eax, ebp
dec eax
mov edi, edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406af0
mov ecx, dword [str.Standard_Edition]
mov dword [eax], ecx
mov edx, dword [0x44f258]
mov dword [eax + 4], edx
mov ecx, dword [0x44f25c]
mov dword [eax + 8], ecx
mov edx, dword [0x44f260]
mov dword [eax + 0xc], edx
mov cl, byte [0x44f264]
mov byte [eax + 0x10], cl
jmp 0x406bad
mov edi, ebp
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406b30
mov ecx, 9
mov esi, str.Standard_Edition__core_installation_
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x406bad
mov eax, ebp
dec eax
lea ebx, [ebx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406b50
mov edx, dword [str.Web_Server_Edition]
mov dword [eax], edx
mov ecx, dword [0x44f294]
mov dword [eax + 4], ecx
mov edx, dword [0x44f298]
mov dword [eax + 8], edx
mov ecx, dword [0x44f29c]
mov dword [eax + 0xc], ecx
mov dx, word [0x44f2a0]
mov word [eax + 0x10], dx
mov cl, byte [0x44f2a2]
mov byte [eax + 0x12], cl
jmp 0x406bad
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406b94
mov edx, dword [str.Unknown]
mov dword [eax], edx
mov ecx, dword [0x44f2a8]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x14]
cmp ax, 9
jne 0x406be4
mov eax, ebp
dec eax
lea ebx, [ebx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406bc0
mov edx, dword [str.__64_bit]
mov dword [eax], edx
mov ecx, dword [0x44f2b0]
mov dword [eax + 4], ecx
mov dl, byte [0x44f2b4]
mov byte [eax + 8], dl
jmp 0x406c12
test ax, ax
jne 0x406c12
mov eax, ebp
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406bf0
mov ecx, dword [str.__32_bit]
mov dword [eax], ecx
mov edx, dword [0x44f2bc]
mov dword [eax + 4], edx
mov cl, byte [0x44f2c0]
mov byte [eax + 8], cl
cmp dword [esp + 0x40], 5
jne 0x4070d4
mov eax, dword [esp + 0x44]
cmp eax, 2
jne 0x406fb0
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xd4]
test eax, eax
je 0x406c5e
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406c44
mov ecx, 6
mov esi, str.Windows_Server_2003_R2_
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x406cff
mov eax, 0x2000
cmp bx, ax
jne 0x406c86
mov edi, ebp
dec edi
jmp 0x406c70
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406c70
mov ecx, 7
mov esi, str.Windows_Storage_Server_2003
rep movsd dword es:[edi], dword [esi]
jmp 0x406cff
cmp byte [esp + 0xd6], 1
jne 0x406cb9
cmp dx, 9
jne 0x406cb9
mov edi, ebp
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406ca0
mov ecx, 9
mov esi, str.Windows_XP_Professional_x64_Edition
rep movsd dword es:[edi], dword [esi]
jmp 0x406f38
mov eax, ebp
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406cc0
mov ecx, dword [str.Windows_Server_2003_]
mov dword [eax], ecx
mov ecx, dword [0x44f324]
mov dword [eax + 4], ecx
mov ecx, dword [0x44f328]
mov dword [eax + 8], ecx
mov ecx, dword [0x44f32c]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x44f330]
mov dword [eax + 0x10], ecx
mov cx, word [0x44f334]
mov word [eax + 0x14], cx
cmp byte [esp + 0xd6], 1
je 0x406f38
cmp dx, 6
jne 0x406d60
test bl, bl
jns 0x406d3a
mov edi, ebp
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406d20
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 0x406f38
test bl, 2
je 0x406f38
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406d46
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 0x406f38
cmp dx, 9
jne 0x406df6
test bl, bl
jns 0x406d8d
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406d71
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 0x406f38
test bl, 2
je 0x406db1
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406d95
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 0x406f38
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406db4
mov edx, dword [str.Standard_x64_Edition]
mov dword [eax], edx
mov ecx, dword [0x44f39c]
mov dword [eax + 4], ecx
mov edx, dword [0x44f3a0]
mov dword [eax + 8], edx
mov ecx, dword [0x44f3a4]
mov dword [eax + 0xc], ecx
mov edx, dword [0x44f3a8]
mov dword [eax + 0x10], edx
mov cl, byte [0x44f3ac]
mov byte [eax + 0x14], cl
jmp 0x406f38
mov eax, ebp
dec eax
test ebx, 0x4000
je 0x406e43
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406e01
mov edx, dword [str.Compute_Cluster_Edition]
mov dword [eax], edx
mov ecx, dword [0x44f3b4]
mov dword [eax + 4], ecx
mov edx, dword [0x44f3b8]
mov dword [eax + 8], edx
mov ecx, dword [0x44f3bc]
mov dword [eax + 0xc], ecx
mov edx, dword [0x44f3c0]
mov dword [eax + 0x10], edx
mov ecx, dword [0x44f3c4]
mov dword [eax + 0x14], ecx
jmp 0x406f38
test bl, bl
jns 0x406e8b
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406e47
mov edx, dword [str.Datacenter_Edition]
mov dword [eax], edx
mov ecx, dword [0x44f184]
mov dword [eax + 4], ecx
mov edx, dword [0x44f188]
mov dword [eax + 8], edx
mov ecx, dword [0x44f18c]
mov dword [eax + 0xc], ecx
mov dx, word [0x44f190]
mov word [eax + 0x10], dx
mov cl, byte [0x44f192]
mov byte [eax + 0x12], cl
jmp 0x406f38
test bl, 2
je 0x406ed1
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406e90
mov edx, dword [str.Enterprise_Edition]
mov dword [eax], edx
mov ecx, dword [0x44f124]
mov dword [eax + 4], ecx
mov edx, dword [0x44f128]
mov dword [eax + 8], edx
mov ecx, dword [0x44f12c]
mov dword [eax + 0xc], ecx
mov dx, word [0x44f130]
mov word [eax + 0x10], dx
mov cl, byte [0x44f132]
mov byte [eax + 0x12], cl
jmp 0x406f38
test ebx, 0x400
je 0x406f04
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406ee0
mov edx, dword [str.Web_Edition]
mov dword [eax], edx
mov ecx, dword [0x44f3cc]
mov dword [eax + 4], ecx
mov edx, dword [0x44f3d0]
mov dword [eax + 8], edx
jmp 0x406f38
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406f04
mov ecx, dword [str.Standard_Edition]
mov dword [eax], ecx
mov edx, dword [0x44f258]
mov dword [eax + 4], edx
mov ecx, dword [0x44f25c]
mov dword [eax + 8], ecx
mov edx, dword [0x44f260]
mov dword [eax + 0xc], edx
mov cl, byte [0x44f264]
mov byte [eax + 0x10], cl
cmp dword [esp + 0x40], 5
jne 0x4070d4
mov eax, dword [esp + 0x44]
cmp eax, 1
jne 0x406fca
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406f53
mov edx, dword [str.Windows_XP]
mov dword [eax], edx
mov ecx, dword [0x44f3d8]
mov dword [eax + 4], ecx
mov edx, dword [0x44f3dc]
mov dword [eax + 8], edx
mov eax, ebp
dec eax
test ebx, 0x200
je 0x406fc0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406f80
mov ecx, dword [str.Home_Edition]
mov dword [eax], ecx
mov edx, dword [0x44f3e4]
mov dword [eax + 4], edx
mov ecx, dword [0x44f3e8]
mov dword [eax + 8], ecx
mov dl, byte [0x44f3ec]
mov byte [eax + 0xc], dl
jmp 0x4070d4
mov ebx, dword [esp + 0xd4]
jmp 0x406f47
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406fc0
jmp 0x407018
test eax, eax
jne 0x4070d4
mov eax, ebp
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406fd5
mov ecx, dword [str.Windows_2000]
mov dword [eax], ecx
mov edx, dword [0x44f3f4]
mov dword [eax + 4], edx
mov ecx, dword [0x44f3f8]
mov dword [eax + 8], ecx
mov dx, word [0x44f3fc]
mov word [eax + 0xc], dx
mov eax, ebp
dec eax
cmp byte [esp + 0xd6], 1
jne 0x407040
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x407010
mov ecx, dword [str.Professional]
mov dword [eax], ecx
mov edx, dword [0x44f138]
mov dword [eax + 4], edx
mov ecx, dword [0x44f13c]
mov dword [eax + 8], ecx
mov dl, byte [0x44f140]
mov byte [eax + 0xc], dl
jmp 0x4070d4
test bl, bl
jns 0x40707c
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x407044
mov ecx, dword [str.Datacenter_Server]
mov dword [eax], ecx
mov edx, dword [0x44f404]
mov dword [eax + 4], edx
mov ecx, dword [0x44f408]
mov dword [eax + 8], ecx
mov edx, dword [0x44f40c]
mov dword [eax + 0xc], edx
mov cx, word [0x44f410]
mov word [eax + 0x10], cx
jmp 0x4070d4
test bl, 2
je 0x4070b0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x407081
mov edx, dword [str.Advanced_Server]
mov dword [eax], edx
mov ecx, dword [0x44f418]
mov dword [eax + 4], ecx
mov edx, dword [0x44f41c]
mov dword [eax + 8], edx
mov ecx, dword [0x44f420]
mov dword [eax + 0xc], ecx
jmp 0x4070d4
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4070b0
mov edx, dword [str.Server]
mov dword [eax], edx
mov cx, word [0x44f428]
mov word [eax + 4], cx
mov dl, byte [0x44f42a]
mov byte [eax + 6], dl
lea eax, [esp + 0x50]
lea edx, [eax + 1]
jmp 0x4070e0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4070e0
sub eax, edx
je 0x40712b
mov edi, ebp
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4070f0
mov ax, word [0x44f42c]
mov word [edi], ax
lea eax, [esp + 0x50]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407107
mov edi, ebp
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x407115
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 + 0x48]
push ecx
lea edx, [esp + 0xdc]
push str.__build__d_
push edx
call fcn.004324b5
lea eax, [esp + 0xe4]
add esp, 0xc
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407150
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 0x407160
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 eax, 1
jmp 0x40717f
xor eax, eax
mov ecx, dword [esp + 0x128]
pop edi
pop ebx
pop esi
pop ebp
xor ecx, esp
call fcn.0043164a
add esp, 0x11c
ret