Function at 0x531774
Capabilities:
Access peb ldr_data
Check os version
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x178d
push 0
push 0
dec ecx
jne 0x53177d
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov byte [ebp - 6], cl
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
lea eax, [ebp - 0xb4e5]
mov edx, dword [0x49eef0]
call fcn.00405064
lea eax, [ebp - 0xb5a9]
mov edx, dword [0x49eef0]
call fcn.00405064
xor eax, eax
push ebp
push 0x534937
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0052dbd8
mov eax, dword [ebp - 4]
call fcn.0052db5c
mov eax, dword [ebp - 4]
call fcn.0052da64
mov eax, dword [ebp - 4]
call fcn.0052dae0
mov eax, dword [ebp - 4]
call fcn.00529450
test al, al
je 0x5318a3
mov eax, dword [ebp - 4]
call fcn.005291dc
xor eax, eax
push ebp
push 0x53189c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00529478
mov dx, 0x1f4
mov eax, dword [ebp - 4]
call fcn.00528c68
mov eax, dword [ebp - 4]
call fcn.00529204
mov eax, dword [ebp - 4]
lea edx, [eax + 0x18]
mov ecx, 4
mov eax, dword [ebp - 4]
call fcn.00529218
mov eax, dword [ebp - 4]
xor ecx, ecx
mov cl, byte [eax + 0x1c]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x1d]
mov eax, dword [ebp - 4]
call fcn.00529218
lea edx, [ebp - 5]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.00529218
lea edx, [ebp - 6]
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.00529218
mov eax, dword [ebp - 4]
call fcn.00529238
mov eax, dword [ebp - 4]
call fcn.00528d50
mov eax, dword [ebp - 4]
call fcn.005294a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5348e3
mov eax, dword [ebp - 4]
call fcn.005291f0
ret
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x50b438]
call fcn.00519144
mov dword [ebp - 0xc], eax
push ebp
push 0x5348dc
push dword fs:[0]
mov dword fs:[0], esp
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x50b438]
call fcn.00519144
mov dword [ebp - 0x10], eax
push ebp
push 0x5348bf
push dword fs:[0]
mov dword fs:[0], esp
lea eax, [ebp - 0xb6ac]
push eax
call fcn.0050becc
add eax, 0xbe0
push eax
call fcn.0050becc
add eax, 0xbe0
push eax
lea eax, [ebp - 0xb7b0]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x10]
add edx, 0x118
call fcn.00404750
lea eax, [ebp - 0xb7b0]
push eax
lea eax, [ebp - 0xb7b4]
mov edx, dword [ebp - 4]
add edx, 0x1c
call fcn.00404750
mov edx, dword [ebp - 0xb7b4]
pop eax
call fcn.004047d0
mov edx, dword [ebp - 0xb7b0]
lea eax, [ebp - 0xb7ac]
mov ecx, 0xff
call fcn.004047a4
lea eax, [ebp - 0xb7ac]
pop edx
pop ecx
call fcn.004e5fec
lea edx, [ebp - 0xb6ac]
mov eax, dword [ebp - 0xc]
add eax, 0xc
call fcn.00402f00
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
call fcn.005204ec
mov edx, dword [ebp - 0xc]
mov byte [edx + 4], al
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x110], 1
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
xor edx, edx
push ebp
push 0x5333d5
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
lea edx, [ebp - 0x90ff]
mov ecx, 0x7f
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x30]
cmp byte [ebp - 0x90f7], 6
jne 0x531a65
lea eax, [ebp - 0xb7bc]
mov edx, dword [ebp - 4]
add edx, 0x1c
call fcn.00404750
push dword [ebp - 0xb7bc]
push 0x534950
push 0x534974
call fcn.0050becc
lea ecx, [ebp - 0xb7ac]
mov dl, 6
call fcn.00515cf0
lea edx, [ebp - 0xb7ac]
lea eax, [ebp - 0xb7c0]
call fcn.00404750
push dword [ebp - 0xb7c0]
push 0x534990
lea eax, [ebp - 0xb7b8]
mov edx, 5
call fcn.00404888
mov edx, dword [ebp - 0xb7b8]
lea eax, [ebp - 0xb6ac]
mov ecx, 0xff
call fcn.004047a4
lea edx, [ebp - 0xb6ac]
mov eax, dword [ebp - 4]
call fcn.005366d0
call fcn.00403f50
call fcn.00403f50
call fcn.00403f50
jmp 0x5348e3
cmp byte [ebp - 0x90f7], 6
jbe 0x531adc
lea eax, [ebp - 0xb7c8]
mov edx, dword [ebp - 4]
add edx, 0x1c
call fcn.00404750
push dword [ebp - 0xb7c8]
push 0x5349ac
push 0x5349d0
push 0x534990
lea eax, [ebp - 0xb7c4]
mov edx, 4
call fcn.00404888
mov edx, dword [ebp - 0xb7c4]
lea eax, [ebp - 0xb6ac]
mov ecx, 0xff
call fcn.004047a4
lea edx, [ebp - 0xb6ac]
mov eax, dword [ebp - 4]
call fcn.005366d0
call fcn.00403f50
call fcn.00403f50
call fcn.00403f50
jmp 0x5348e3
push 0x534a08
lea eax, [ebp - 0xb7d0]
mov edx, dword [ebp - 4]
add edx, 0x1c
call fcn.00404750
push dword [ebp - 0xb7d0]
push 0x534a24
call fcn.0050becc
lea ecx, [ebp - 0xb7ac]
mov dl, 6
call fcn.00515cf0
lea edx, [ebp - 0xb7ac]
lea eax, [ebp - 0xb7d4]
call fcn.00404750
push dword [ebp - 0xb7d4]
push 0x534a3c
call fcn.0040b8d0
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0xb7d8]
call fcn.0040c538
push dword [ebp - 0xb7d8]
lea eax, [ebp - 0xb7cc]
mov edx, 6
call fcn.00404888
mov edx, dword [ebp - 0xb7cc]
lea eax, [ebp - 0xb6ac]
mov ecx, 0xff
call fcn.004047a4
lea edx, [ebp - 0xb6ac]
mov eax, dword [ebp - 4]
call fcn.005366d0
xor eax, eax
mov dword [ebp - 0x58], eax
cmp byte [ebp - 0x90a9], 0
je 0x531c49
lea eax, [ebp - 0xb421]
lea edx, [ebp - 0x90a8]
call fcn.00402f00
push 0x69
xor edx, edx
mov dl, byte [ebp - 0xb421]
lea eax, [ebp - 0xb420]
mov cl, 0x4c
call fcn.004e7334
mov eax, dword [ebp - 4]
call fcn.00528c58
lea edx, [ebp - 0xb421]
call fcn.0051c358
test al, al
jne 0x531c31
mov eax, dword [ebp - 4]
call fcn.00528c58
call fcn.0051ddf8
test al, al
jne 0x531bb6
push 0x534a4c
lea edx, [ebp - 0xb6ac]
mov eax, dword [ebp - 4]
call fcn.00529464
lea eax, [ebp - 0xb6ac]
push eax
mov eax, dword [ebp - 4]
add eax, 0x1c
push eax
push 0x534a4c
push 0x534a4c
push 0x534a4c
push 0x534a4c
push 0x534a4c
push 0
push 0
call fcn.0050becc
mov ecx, 0x534a4c
mov dx, 0x2902
call fcn.005127f0
jmp 0x531bb6
mov eax, dword [ebp - 4]
call fcn.00528c58
lea edx, [ebp - 0xb421]
call fcn.0051c3b0
mov dword [ebp - 0x58], eax
jmp 0x531c50
mov byte [ebp - 0xb421], 0
mov al, byte [ebp - 0x90f7]
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x90a9], 0
je 0x531c79
push 0x69
xor edx, edx
mov dl, byte [ebp - 0x90dc]
lea eax, [ebp - 0x90db]
mov cl, 0x4c
call fcn.004e7334
mov eax, dword [ebp - 0x90ff]
mov dword [ebp - 0x92ff], eax
mov byte [ebp - 0x92f7], 6
call fcn.0050becc
lea esi, [eax + 0xbd0]
lea edi, [ebp - 0x92f6]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x90f6]
mov dword [ebp - 0x92e6], eax
mov eax, dword [ebp - 0x90f2]
mov dword [ebp - 0x92e2], eax
mov eax, dword [ebp - 0x90ee]
mov dword [ebp - 0x92de], eax
mov eax, dword [ebp - 0x90ee]
mov dword [ebp - 0x92da], eax
xor eax, eax
mov dword [ebp - 0x92d6], eax
mov ax, word [ebp - 0x90ea]
add ax, 0x10
mov word [ebp - 0x92d2], ax
mov ax, word [ebp - 0x90e8]
mov word [ebp - 0x92d0], ax
mov ax, word [ebp - 0x90e6]
mov word [ebp - 0x92ce], ax
mov edx, 8
mov eax, dword [ebp - 0x90fb]
call fcn.004e9448
mov dword [ebp - 0x92cc], eax
mov eax, dword [ebp - 0x908f]
mov dword [ebp - 0x92c8], eax
mov dword [ebp - 0x92c4], 0x1000
mov eax, dword [ebp - 0x90e4]
mov dword [ebp - 0x92c0], eax
mov eax, dword [ebp - 0x90e0]
mov dword [ebp - 0x92bc], eax
lea eax, [ebp - 0x92b8]
lea edx, [ebp - 0x90dc]
mov cl, 0x64
call fcn.00402f0c
mov al, byte [ebp - 0x90a9]
mov byte [ebp - 0x9253], al
cmp byte [ebp - 0x9253], 0
je 0x531da3
mov eax, dword [ebp - 0x58]
lea esi, [eax + 0x108]
lea edi, [ebp - 0x9252]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x10
call fcn.0050becc
lea ecx, [ebp - 0x9252]
mov edx, dword [ebp - 0x58]
mov edx, dword [edx + 0x118]
call fcn.00515ebc
jmp 0x531db5
lea eax, [ebp - 0x9252]
xor ecx, ecx
mov edx, 0x10
call fcn.0040301c
mov dx, word [ebp - 0x9096]
mov ax, word [ebp - 0x9098]
call fcn.004e8520
mov dword [ebp - 0x9242], eax
mov ax, word [ebp - 0x9094]
mov word [ebp - 0x923e], ax
mov ax, word [ebp - 0x9092]
mov word [ebp - 0x923c], ax
mov al, byte [ebp - 0x90a9]
mov byte [ebp - 0x11], al
cmp word [ebp - 0x90e6], 0
seta byte [ebp - 0x12]
mov eax, dword [ebp - 0x90fb]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x92cc]
mov dword [ebp - 0x1c], eax
mov ax, word [ebp - 0x90e8]
mov word [ebp - 0x26], ax
mov eax, dword [ebp - 0x90f2]
dec eax
mov dword [ebp - 0x2c], eax
mov ax, word [ebp - 0x90ea]
mov word [ebp - 0x30], ax
cmp byte [ebp - 0x2d], 4
jae 0x531e47
movzx eax, word [ebp - 0x90e6]
imul dword [ebp - 0x2c]
mov dword [ebp - 0x92c8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
call fcn.005204ec
test al, al
je 0x531e9c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
call fcn.005204ec
push eax
push 0
lea eax, [ebp - 0xb6ac]
push eax
call fcn.0050becc
add eax, 0x14e0
push eax
call fcn.0050becc
mov edx, 0x534a50
pop ecx
call fcn.00516fd0
lea edx, [ebp - 0xb6ac]
mov eax, dword [ebp - 0x10]
add eax, 0xc
call fcn.00402f00
jmp 0x531f4b
call fcn.0050becc
cmp byte [eax + 0x17e0], 0
je 0x531ef4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
call fcn.005204ec
push eax
push 0
lea eax, [ebp - 0xb6ac]
push eax
call fcn.0050becc
add eax, 0x14e0
push eax
call fcn.0050becc
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x10]
add edx, 0x118
pop ecx
call fcn.00516fd0
lea edx, [ebp - 0xb6ac]
mov eax, dword [ebp - 0x10]
add eax, 0xc
call fcn.00402f00
jmp 0x531f4b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
call fcn.005204ec
push eax
push 0
lea eax, [ebp - 0xb6ac]
push eax
mov eax, dword [ebp - 4]
call fcn.00528c58
lea edx, [ebp - 0xb7ac]
call fcn.0051bbd8
lea eax, [ebp - 0xb7ac]
push eax
call fcn.0050becc
add eax, 0x14e0
push eax
call fcn.0050becc
pop ecx
pop edx
call fcn.00516fd0
lea edx, [ebp - 0xb6ac]
mov eax, dword [ebp - 0x10]
add eax, 0xc
call fcn.00402f00
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
call fcn.005204ec
mov edx, dword [ebp - 0x10]
mov byte [edx + 4], al
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x110], 1
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x10]
xor edx, edx
push ebp
push 0x5333b8
push dword fs:[edx]
mov dword fs:[edx], esp
mov dword [ebp - 0x44], 0x19
xor eax, eax
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x1080]
xor ecx, ecx
mov edx, 0x1000
call fcn.0040301c
lea eax, [ebp - 0x2080]
xor ecx, ecx
mov edx, 0x1000
call fcn.0040301c
lea eax, [ebp - 0x3080]
xor ecx, ecx
mov edx, 0x1000
call fcn.0040301c
cmp byte [ebp - 0x2d], 3
jae 0x532000
movzx eax, word [ebp - 0x26]
test eax, eax
jle 0x53203a
mov dword [ebp - 0x68], eax
lea ebx, [ebp - 0x1080]
lea esi, [ebp - 0x3080]
mov eax, 0x109
call fcn.00408d84
mov dword [ebx], eax
mov eax, 0x300
call fcn.00408d84
mov dword [esi], eax
add esi, 4
add ebx, 4
dec dword [ebp - 0x68]
jne 0x531fdb
jmp 0x53203a
movzx eax, word [ebp - 0x26]
test eax, eax
jle 0x53203a
mov dword [ebp - 0x68], eax
lea esi, [ebp - 0x2080]
lea ebx, [ebp - 0x3080]
mov eax, 0x300
call fcn.00408d84
mov dword [esi], eax
mov eax, 0x300
call fcn.00408d84
mov dword [ebx], eax
add ebx, 4
add esi, 4
dec dword [ebp - 0x68]
jne 0x532017
cmp byte [ebp - 0x2d], 3
jae 0x5320d0
movzx eax, word [ebp - 0x26]
imul eax, eax, 0x109
call fcn.00408d84
mov dword [ebp - 0x50], eax
push 0
movzx eax, word [ebp - 0x26]
imul ecx, eax, 0x109
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x30]
cmp byte [ebp - 0x11], 0
je 0x53208b
push 0xd9
imul dx, word [ebp - 0x26], 0x109
movzx edx, dx
mov eax, dword [ebp - 0x50]
mov cl, 0x30
call fcn.004e7334
movzx eax, word [ebp - 0x26]
test eax, eax
jle 0x53217c
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x40], 1
lea ebx, [ebp - 0x1080]
mov edx, dword [ebx]
mov eax, dword [ebp - 0x40]
dec eax
imul eax, eax, 0x109
add eax, dword [ebp - 0x50]
mov ecx, 0x109
call fcn.00402b40
inc dword [ebp - 0x40]
add ebx, 4
dec dword [ebp - 0x68]
jne 0x5320a7
jmp 0x53217c
movzx eax, word [ebp - 0x26]
shl eax, 8
lea eax, [eax + eax*2]
call fcn.00408d84
mov dword [ebp - 0x50], eax
push 0
movzx eax, word [ebp - 0x26]
mov ecx, eax
shl ecx, 8
lea ecx, [ecx + ecx*2]
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x30]
cmp byte [ebp - 0x11], 0
je 0x532140
cmp byte [ebp - 0x2d], 4
jae 0x532125
push 0xd9
mov dx, word [ebp - 0x26]
shl edx, 8
lea edx, [edx + edx*2]
movzx edx, dx
mov eax, dword [ebp - 0x50]
mov cl, 0x30
call fcn.004e7334
jmp 0x532140
push 0xd9
movzx eax, word [ebp - 0x26]
mov edx, eax
shl edx, 8
lea edx, [edx + edx*2]
mov eax, dword [ebp - 0x50]
mov cl, 0x30
call fcn.004e7334
movzx eax, word [ebp - 0x26]
test eax, eax
jle 0x53217c
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x40], 1
lea ebx, [ebp - 0x2080]
mov edx, dword [ebx]
mov eax, dword [ebp - 0x40]
dec eax
shl eax, 8
lea eax, [eax + eax*2]
add eax, dword [ebp - 0x50]
mov ecx, 0x300
call fcn.00402b40
inc dword [ebp - 0x40]
add ebx, 4
dec dword [ebp - 0x68]
jne 0x532158
xor edx, edx
push ebp
push 0x53339b
push dword fs:[edx]
mov dword fs:[edx], esp
mov word [ebp - 0x54], 0
call fcn.0050becc
call fcn.0050e54c
xor edx, edx
push ebp
push 0x53274b
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.0050becc
lea edx, [ebp - 0xb4e5]
call fcn.0050f3d8
xor edx, edx
push ebp
push 0x53272c
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.0050becc
lea ecx, [ebp - 0xb5a9]
mov edx, dword [ebp - 0x9242]
call fcn.0050e564
call fcn.0050becc
lea edx, [ebp - 0xb5a9]
call fcn.0050f50c
movzx eax, word [ebp - 0x26]
test eax, eax
jle 0x53270e
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x40], 1
lea ebx, [ebp - 0x3080]
lea esi, [ebp - 0x1080]
lea edi, [ebp - 0x2080]
cmp byte [ebp - 0x2d], 3
jae 0x532303
mov eax, dword [ebx]
mov dword [ebp - 0x6c], eax
mov eax, dword [esi]
mov ax, word [eax]
mov edx, dword [ebp - 0x6c]
mov word [edx], ax
mov eax, dword [ebp - 0x6c]
add eax, 2
mov edx, dword [esi]
add edx, 2
mov cl, 0x3c
call fcn.00402f0c
mov eax, dword [ebp - 0x6c]
add eax, 0x3f
mov edx, dword [esi]
add edx, 0x21
mov cl, 0x64
call fcn.00402f0c
mov eax, dword [esi]
mov al, byte [eax + 0x54]
mov edx, dword [ebp - 0x6c]
mov byte [edx + 0xa4], al
mov eax, dword [esi]
mov al, byte [eax + 0x55]
mov edx, dword [ebp - 0x6c]
mov byte [edx + 0xa5], al
mov eax, dword [esi]
movzx eax, byte [eax + 0x56]
mov edx, dword [ebp - 0x6c]
mov word [edx + 0xa6], ax
mov eax, dword [esi]
mov al, byte [eax + 0x57]
mov edx, dword [ebp - 0x6c]
mov byte [edx + 0xa8], al
mov eax, dword [ebp - 0x6c]
mov dx, word [ebp - 0x44]
mov word [eax + 0xac], dx
mov eax, dword [esi]
mov al, byte [eax + 0x5a]
mov edx, dword [ebp - 0x6c]
mov byte [edx + 0xae], al
mov eax, dword [ebp - 0x6c]
add eax, 0xb0
mov edx, dword [esi]
add edx, 0x5c
mov cl, 0x64
call fcn.00402f0c
mov eax, dword [ebp - 0x6c]
add eax, 0x115
mov edx, dword [esi]
add edx, 0x8f
mov cl, 0x64
call fcn.00402f0c
mov eax, dword [ebp - 0x6c]
add eax, 0x17a
mov edx, dword [esi]
add edx, 0xc2
mov cl, 0x64
call fcn.00402f0c
mov eax, dword [ebp - 0x6c]
mov byte [eax + 0xaf], 0
mov eax, dword [ebp - 0x6c]
mov byte [eax + 0x1df], 0
jmp 0x5323f9
mov eax, dword [ebx]
mov dword [ebp - 0x70], eax
mov eax, dword [edi]
mov ax, word [eax]
mov edx, dword [ebp - 0x70]
mov word [edx], ax
mov eax, dword [ebp - 0x70]
add eax, 2
mov edx, dword [edi]
add edx, 2
mov cl, 0x3c
call fcn.00402f0c
mov eax, dword [ebp - 0x70]
add eax, 0x3f
mov edx, dword [edi]
add edx, 0x21
mov cl, 0x64
call fcn.00402f0c
mov eax, dword [edi]
mov al, byte [eax + 0x54]
mov edx, dword [ebp - 0x70]
mov byte [edx + 0xa4], al
mov eax, dword [edi]
mov al, byte [eax + 0x55]
mov edx, dword [ebp - 0x70]
mov byte [edx + 0xa5], al
mov eax, dword [edi]
movzx eax, byte [eax + 0x56]
mov edx, dword [ebp - 0x70]
mov word [edx + 0xa6], ax
mov eax, dword [edi]
mov al, byte [eax + 0x57]
mov edx, dword [ebp - 0x70]
mov byte [edx + 0xa8], al
mov eax, dword [ebp - 0x70]
mov dx, word [ebp - 0x44]
mov word [eax + 0xac], dx
mov eax, dword [edi]
mov al, byte [eax + 0x5c]
mov edx, dword [ebp - 0x70]
mov byte [edx + 0xae], al
mov eax, dword [ebp - 0x70]
add eax, 0xb0
mov edx, dword [edi]
add edx, 0x5e
mov cl, 0x64
call fcn.00402f0c
mov eax, dword [ebp - 0x70]
add eax, 0x115
mov edx, dword [edi]
add edx, 0x91
mov cl, 0x64
call fcn.00402f0c
mov eax, dword [ebp - 0x70]
add eax, 0x17a
mov edx, dword [edi]
add edx, 0xc4
mov cl, 0x64
call fcn.00402f0c
cmp byte [ebp - 0x2d], 4
jae 0x5323e1
mov eax, dword [ebp - 0x70]
mov byte [eax + 0xaf], 0
jmp 0x5323ef
mov eax, dword [edi]
mov al, byte [eax + 0x5d]
mov edx, dword [ebp - 0x70]
mov byte [edx + 0xaf], al
mov eax, dword [ebp - 0x70]
mov byte [eax + 0x1df], 0
mov eax, dword [ebx]
cmp byte [eax + 0xa4], 3
jne 0x53241f
mov dl, byte [eax + 0xa5]
test dl, dl
je 0x53241f
sub dl, 0x16
je 0x53241f
sub dl, 4
je 0x53241f
mov byte [eax + 0xa5], 0
cmp byte [ebp - 0x2d], 5
jae 0x5324c8
lea eax, [ebp - 0xb6ac]
push eax
mov eax, dword [ebx]
xor ecx, ecx
mov cl, byte [eax + 0xa4]
mov eax, dword [ebx]
lea edx, [eax + 0xb0]
mov eax, dword [ebp - 4]
call fcn.00534c54
lea edx, [ebp - 0xb6ac]
mov eax, dword [ebx]
add eax, 0xb0
mov cl, 0x64
call fcn.00402f0c
lea eax, [ebp - 0xb6ac]
push eax
mov eax, dword [ebx]
xor ecx, ecx
mov cl, byte [eax + 0xa4]
mov eax, dword [ebx]
lea edx, [eax + 0x115]
mov eax, dword [ebp - 4]
call fcn.00534c54
lea edx, [ebp - 0xb6ac]
mov eax, dword [ebx]
add eax, 0x115
mov cl, 0x64
call fcn.00402f0c
lea eax, [ebp - 0xb6ac]
push eax
mov eax, dword [ebx]
xor ecx, ecx
mov cl, byte [eax + 0xa4]
mov eax, dword [ebx]
lea edx, [eax + 0x17a]
mov eax, dword [ebp - 4]
call fcn.00534c54
lea edx, [ebp - 0xb6ac]
mov eax, dword [ebx]
add eax, 0x17a
mov cl, 0x64
call fcn.00402f0c
lea eax, [ebp - 0xb7dc]
mov edx, dword [ebx]
add edx, 2
call fcn.00404750
mov eax, dword [ebp - 0xb7dc]
mov edx, 0x534a60
call fcn.00408fe8
test eax, eax
je 0x532514
lea eax, [ebp - 0xb7e0]
mov edx, dword [ebx]
add edx, 2
call fcn.00404750
mov eax, dword [ebp - 0xb7e0]
mov edx, 0x534a74
call fcn.00408fe8
test eax, eax
jne 0x53264a
mov edx, 0x534a80
lea eax, [ebp - 0xb82c]
call fcn.00402f00
mov eax, dword [ebx]
lea edx, [eax + 2]
lea eax, [ebp - 0xb82c]
mov cl, 0x48
call fcn.00402ed0
lea edx, [ebp - 0xb82c]
lea eax, [ebp - 0xb878]
call fcn.00402f00
mov edx, 0x534a90
lea eax, [ebp - 0xb878]
mov cl, 0x49
call fcn.00402ed0
lea edx, [ebp - 0xb878]
lea eax, [ebp - 0xb8f4]
call fcn.00402f00
mov edx, 0x534a94
lea eax, [ebp - 0xb8f4]
mov cl, 0x7b
call fcn.00402ed0
lea edx, [ebp - 0xb8f4]
lea eax, [ebp - 0xb974]
call fcn.00402f00
mov edx, 0x534a90
lea eax, [ebp - 0xb974]
mov cl, 0x7c
call fcn.00402ed0
lea edx, [ebp - 0xb974]
lea eax, [ebp - 0xb9f4]
call fcn.00402f00
mov edx, 0x534ac8
lea eax, [ebp - 0xb9f4]
mov cl, 0x7d
call fcn.00402ed0
lea edx, [ebp - 0xb9f4]
lea eax, [ebp - 0xbab0]
call fcn.00402f00
mov eax, dword [ebx]
lea edx, [eax + 2]
lea eax, [ebp - 0xbab0]
mov cl, 0xb9
call fcn.00402ed0
lea edx, [ebp - 0xbab0]
lea eax, [ebp - 0xbb6c]
call fcn.00402f00
mov edx, 0x534a90
lea eax, [ebp - 0xbb6c]
mov cl, 0xba
call fcn.00402ed0
lea edx, [ebp - 0xbb6c]
mov eax, dword [ebp - 4]
call fcn.005366d0
mov edx, 0x534ac8
lea eax, [ebp - 0xbbac]
call fcn.00402f00
mov eax, dword [ebx]
lea edx, [eax + 2]
lea eax, [ebp - 0xbbac]
mov cl, 0x3d
call fcn.00402ed0
lea edx, [ebp - 0xbbac]
mov eax, dword [ebx]
add eax, 2
mov cl, 0x3c
call fcn.00402f0c
mov eax, dword [ebx]
call fcn.0050c254
mov eax, dword [ebx]
call fcn.0050c350
mov eax, dword [ebx]
movzx eax, word [eax + 0xa9]
inc eax
add dword [ebp - 0x44], eax
fild dword [ebp - 0x40]
movzx eax, word [ebp - 0x26]
mov dword [ebp - 0xbbb0], eax
fild dword [ebp - 0xbbb0]
fdivp st(1)
fmul dword [0x534acc]
call fcn.00402de4
mov word [ebp - 0x52], ax
mov eax, dword [ebp - 4]
call fcn.005297c0
movzx eax, ax
movzx edx, word [ebp - 0x54]
add eax, edx
movzx edx, word [ebp - 0x52]
cmp eax, edx
ja 0x5326f9
lea eax, [ebp - 0xbbb8]
mov edx, dword [ebp - 4]
add edx, 0x1c
call fcn.00404750
mov ecx, dword [ebp - 0xbbb8]
lea eax, [ebp - 0xbbb4]
mov edx, 0x534ad8
call fcn.00404814
mov edx, dword [ebp - 0xbbb4]
lea eax, [ebp - 0xb6ac]
mov ecx, 0xff
call fcn.004047a4
lea edx, [ebp - 0xb6ac]
mov cx, word [ebp - 0x52]
mov eax, dword [ebp - 4]
call fcn.005366b4
mov ax, word [ebp - 0x52]
mov word [ebp - 0x54], ax
inc dword [ebp - 0x40]
add edi, 4
add esi, 4
add ebx, 4
dec dword [ebp - 0x68]
jne 0x532214
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x532733
call fcn.0050becc
lea edx, [ebp - 0xb4e5]
call fcn.0050f50c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x53493e
lea eax, [ebp - 0xbc6c]
mov edx, 0x24
call fcn.00404510
lea eax, [ebp - 0xbbcc]
mov edx, 7
call fcn.00404510
lea eax, [ebp - 0xb7e0]
mov edx, 0xd
call fcn.00404510
lea eax, [ebp - 0xb5a9]
mov edx, dword [0x49eef0]
mov ecx, 2
call fcn.00405180
ret