Function at 0x423530
Capabilities:
Check for peb ntglobalflag flag

Disassembly:
push 0xffffffffffffffff
push 0x491c80
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x4ae7cc]
xor eax, esp
mov dword [esp + 0x68], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ae7cc]
xor eax, esp
push eax
lea eax, [esp + 0x84]
mov dword fs:[0], eax
mov eax, dword [esp + 0x94]
push 1
mov esi, ecx
xor ebp, ebp
push 0x49d4b8
lea ecx, [esp + 0x30]
mov dword [esp + 0x2c], eax
mov byte [esp + 0x23], 0
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], ebp
mov byte [esp + 0x30], 0
call fcn.00402d50
mov dword [esp + 0x8c], ebp
cmp dword [esp + 0x3c], 0x10
mov ecx, dword [esp + 0x28]
lea edx, [esi + 0x14]
mov dword [esp + 0x1c], edx
jae 0x4235b7
lea ecx, [esp + 0x28]
mov edi, dword [edx + 0x10]
mov ebx, dword [esp + 0x38]
mov eax, edi
cmp edi, ebx
jb 0x4235c6
mov eax, ebx
cmp dword [edx + 0x14], 0x10
jb 0x4235ce
mov edx, dword [edx]
call fcn.004021e0
cmp eax, ebp
jne 0x4235e9
cmp edi, ebx
jae 0x4235e0
or eax, 0xffffffff
jmp 0x4235e7
xor eax, eax
cmp edi, ebx
setne al
cmp eax, ebp
sete al
test al, al
je 0x4235fc
lea ecx, [esi + 0x10]
call fcn.0044d400
mov bl, 1
jmp 0x4235fe
xor bl, bl
mov dword [esp + 0x8c], 0xffffffff
cmp dword [esp + 0x3c], 0x10
jb 0x42361d
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00475405
add esp, 4
test bl, bl
mov bl, 1
jne 0x423627
mov bl, byte [esp + 0x1b]
mov eax, dword [esi + 0x10]
cmp eax, 3
jne 0x423684
push 0xffffffffffffffff
push 0xffffffffffffffff
lea edx, [esp + 0x24]
call fcn.004232a0
test al, al
je 0x42381b
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ecx, eax
and eax, 0x7fffffff
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
fild qword [esp + 0x1c]
and ecx, 0x80000000
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], 0
fild qword [esp + 0x1c]
fchs
faddp st(1)
fstp qword [eax]
jmp 0x4237aa
cmp eax, 4
jne 0x4236a9
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0044daf0
mov edx, dword [esp + 0x28]
add esp, 4
fstp qword [edx]
lea ecx, [esi + 0x10]
call fcn.0044d400
jmp 0x4237aa
cmp eax, 2
jne 0x4237bc
mov eax, dword [esp + 0x1c]
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x34]
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], 0
mov byte [esp + 0x34], 0
call fcn.00403160
lea eax, [esp + 0x28]
mov dword [esp + 0x8c], 1
call fcn.00421290
mov ecx, 0x49d594
lea edi, [esp + 0x28]
call fcn.00401fe0
test al, al
jne 0x423777
mov ecx, str.infinity
call fcn.00401fe0
test al, al
jne 0x423777
mov ecx, 0x49d5a4
call fcn.00401fe0
test al, al
je 0x423729
fld qword [0x4ae1c8]
mov ecx, dword [esp + 0x24]
fstp qword [ecx]
jmp 0x423783
push str.Expected_double.
lea ecx, [esp + 0x64]
call fcn.00402d00
mov byte [esp + 0x8c], 2
mov edx, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
push esi
lea ebx, [esp + 0x64]
call fcn.00421440
mov ecx, ebx
mov byte [esp + 0x8c], 1
call fcn.00472d40
lea ecx, [esp + 0x28]
mov dword [esp + 0x8c], 0xffffffff
call fcn.00472d40
jmp 0x42381b
fld qword [0x4ae1b8]
mov edx, dword [esp + 0x24]
fstp qword [edx]
lea ecx, [esi + 0x10]
call fcn.0044d400
mov dword [esp + 0x8c], 0xffffffff
cmp dword [esp + 0x3c], 0x10
jb 0x4237aa
mov eax, dword [esp + 0x28]
push eax
call fcn.00475405
add esp, 4
test bl, bl
je 0x4237b8
mov eax, dword [esp + 0x24]
fld qword [eax]
fchs
fstp qword [eax]
mov al, 1
jmp 0x42381d
push 0x10
push str.Expected_double.
lea ecx, [esp + 0x4c]
mov dword [esp + 0x60], 0xf
mov dword [esp + 0x5c], 0
mov byte [esp + 0x4c], 0
call fcn.00402d50
mov dword [esp + 0x8c], 3
mov edx, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
push esi
lea ebx, [esp + 0x48]
call fcn.00421440
mov dword [esp + 0x8c], 0xffffffff
cmp dword [esp + 0x58], 0x10
jb 0x42381b
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00475405
add esp, 4
xor al, al
mov ecx, dword [esp + 0x84]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.00475410
add esp, 0x7c
ret 4