Function at 0x405bd0
Capabilities:
Check http status code
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x6ec
push ebx
push ebp
push esi
push edi
call fcn.004031c0
mov edi, eax
mov eax, dword [0x5b7638]
cmp edi, eax
mov ebp, 0xcb18967f
mov ebx, 0x4b18967f
jne 0x405c03
mov al, byte [esp + 0x700]
test al, al
je 0x4079d9
xor ebp, ebp
xor esi, esi
mov ebx, 0xfdbb4f
cmp byte [ebx], 0
je 0x405c23
push esi
call fcn.004033d0
add esp, 4
mov dword [esp + esi*4 + 0xbc], eax
jmp 0x405c31
mov dword [esp + esi*4 + 0xbc], ebp
mov dword [esi*4 + 0x555228], ebp
add ebx, 0xd0
inc esi
cmp ebx, 0xff004f
jl 0x405c0c
mov eax, dword [0x54bfa0]
push 0x966
push str.D:descent3mainBOA.cpp
lea ecx, [eax + eax + 2]
push ecx
call fcn.004cb090
mov edx, dword [0x54bfa0]
mov dword [esp + 0x6c], eax
push 0x96a
push str.D:descent3mainBOA.cpp
lea eax, [edx*4 + 4]
push eax
call fcn.004cb090
mov ecx, dword [0x54bfa0]
add esp, 0x18
mov ebx, eax
xor esi, esi
cmp ecx, ebp
mov dword [esp + 0x28], ebx
jl 0x405cde
mov ebp, 0xfdba84
mov al, byte [ebp + 0xcb]
test al, al
je 0x405cd3
mov eax, dword [esi*4 + 0x555228]
test eax, eax
je 0x405cb2
cmp eax, dword [esp + esi*4 + 0xbc]
je 0x405cd3
mov ecx, dword [ebp]
push 0x972
shl ecx, 1
push str.D:descent3mainBOA.cpp
push ecx
call fcn.004cb090
mov dword [ebx + esi*4], eax
mov ecx, dword [0x54bfa0]
add esp, 0xc
inc esi
add ebp, 0xd0
cmp esi, ecx
jle 0x405c94
test ecx, ecx
mov dword [0x5b7638], edi
mov dword [esp + 0x18], 0
jl 0x405f59
mov edx, 0xfdbab0
mov eax, dword [esp + 0x18]
mov dword [0x5a7728], eax
mov al, byte [edx + 0x9f]
test al, al
je 0x405f42
mov esi, dword [esp + 0x18]
xor ebp, ebp
fld dword [0x51d808]
mov eax, dword [esi*4 + 0x555228]
cmp eax, ebp
je 0x405d34
cmp eax, dword [esp + esi*4 + 0xbc]
je 0x4060c2
mov eax, dword [edx - 0x2c]
mov dword [esp + 0x24], ebp
cmp eax, ebp
jle 0x405e98
lea ebx, [edx - 0x20]
mov ecx, dword [ebx]
xor esi, esi
lea eax, [ecx + ebp]
mov dword [esp + 0x20], eax
mov cl, byte [eax + 2]
test cl, cl
jbe 0x405e36
mov eax, dword [edx - 0x20]
xor ecx, ecx
mov cl, byte [eax + ebp + 2]
lea edi, [eax + ebp]
mov dword [esp + 0x5c], ecx
test esi, esi
je 0x405d8e
mov eax, dword [edi + 4]
movsx eax, word [eax + esi*2]
lea ecx, [eax + eax*2]
mov eax, dword [edx - 0x18]
fld dword [eax + ecx*4]
fcomp dword [esp + 0x44]
lea ecx, [eax + ecx*4]
fnstsw ax
test ah, 1
je 0x405da4
mov ecx, dword [edi + 4]
movsx eax, word [ecx + esi*2]
mov ecx, dword [edx - 0x18]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
test esi, esi
je 0x405db6
fld dword [ecx + 4]
fcomp dword [esp + 0x48]
fnstsw ax
test ah, 1
je 0x405dbd
mov eax, dword [ecx + 4]
mov dword [esp + 0x48], eax
test esi, esi
je 0x405dcf
fld dword [ecx + 8]
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 1
je 0x405dd6
mov eax, dword [ecx + 8]
mov dword [esp + 0x4c], eax
test esi, esi
je 0x405de7
fld dword [ecx]
fcomp dword [esp + 0x38]
fnstsw ax
test ah, 0x41
jne 0x405ded
mov eax, dword [ecx]
mov dword [esp + 0x38], eax
test esi, esi
je 0x405dff
fld dword [ecx + 4]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x405e06
mov eax, dword [ecx + 4]
mov dword [esp + 0x3c], eax
test esi, esi
je 0x405e1b
fld dword [ecx + 8]
fcomp dword [esp + 0x40]
lea ebx, [edx - 0x20]
fnstsw ax
test ah, 0x41
jne 0x405e25
mov ecx, dword [ecx + 8]
lea ebx, [edx - 0x20]
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x5c]
inc esi
cmp esi, eax
jl 0x405d6c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
add eax, 0x20
fld dword [esp + 0x3c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x48]
fadd dword [esp + 0x48]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 8], ecx
mov eax, dword [ebx]
lea ecx, [eax + ebp + 0x2c]
mov eax, dword [esp + 0x38]
fmul dword [0x51d830]
mov dword [ecx], eax
mov eax, dword [esp + 0x3c]
add ebp, 0x38
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [edx - 0x2c]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
faddp st(1)
jl 0x405d46
mov ecx, dword [0x54bfa0]
fstp st(0)
jmp 0x405e9a
fstp st(0)
mov eax, 0xcb18967f
mov dword [edx + 4], eax
mov dword [edx], eax
mov dword [edx - 4], eax
mov eax, 0x4b18967f
mov dword [edx + 0x10], eax
mov dword [edx + 0xc], eax
mov dword [edx + 8], eax
mov eax, dword [edx - 0x2c]
test eax, eax
jle 0x405f42
mov ecx, dword [edx - 0x20]
mov esi, eax
add ecx, 0x30
fld dword [ecx - 4]
fcomp dword [edx - 4]
fnstsw ax
test ah, 0x41
jne 0x405edb
mov eax, dword [ecx - 4]
mov dword [edx - 4], eax
fld dword [ecx]
fcomp dword [edx]
fnstsw ax
test ah, 0x41
jne 0x405eea
mov eax, dword [ecx]
mov dword [edx], eax
fld dword [ecx + 4]
fcomp dword [edx + 4]
fnstsw ax
test ah, 0x41
jne 0x405efd
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
fld dword [ecx - 0x10]
fcomp dword [edx + 8]
fnstsw ax
test ah, 1
je 0x405f10
mov eax, dword [ecx - 0x10]
mov dword [edx + 8], eax
fld dword [ecx - 0xc]
fcomp dword [edx + 0xc]
fnstsw ax
test ah, 1
je 0x405f23
mov eax, dword [ecx - 0xc]
mov dword [edx + 0xc], eax
fld dword [ecx - 8]
fcomp dword [edx + 0x10]
fnstsw ax
test ah, 1
je 0x405f36
mov eax, dword [ecx - 8]
mov dword [edx + 0x10], eax
add ecx, 0x38
dec esi
jne 0x405ec8
mov ecx, dword [0x54bfa0]
mov eax, dword [esp + 0x18]
add edx, 0xd0
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jle 0x405cf9
xor edi, edi
test ecx, ecx
mov dword [esp + 0x18], edi
jl 0x40617d
mov edx, dword [esp + 0x60]
mov ebp, 0xfdba84
mov dword [esp + 0x24], edx
mov al, byte [ebp + 0xcb]
test al, al
je 0x40615f
mov eax, dword [edi*4 + 0x555228]
xor esi, esi
test eax, eax
je 0x405f9c
cmp eax, dword [esp + edi*4 + 0xbc]
je 0x40615f
mov eax, dword [ebp]
push 0x9da
shl eax, 1
push str.D:descent3mainBOA.cpp
push eax
call fcn.004cb090
mov ecx, dword [ebp]
push 0x9db
push str.D:descent3mainBOA.cpp
push ecx
mov dword [esp + 0x2c], eax
call fcn.004cb090
mov ecx, dword [ebp]
mov ebx, eax
add esp, 0x18
xor eax, eax
test ecx, ecx
mov dword [esp + 0x34], ebx
jle 0x405fe6
mov byte [eax + ebx], 0
mov ecx, dword [ebp]
inc eax
cmp eax, ecx
jl 0x405fda
mov ecx, dword [ebp]
xor eax, eax
test ecx, ecx
jle 0x405ffa
cmp byte [eax + ebx], 0
je 0x405ffa
inc eax
cmp eax, ecx
jl 0x405fef
cmp eax, ecx
jge 0x40613f
mov edx, dword [esp + 0x14]
inc esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], 1
mov word [edx], ax
mov edx, dword [esp + 0x28]
mov byte [eax + ebx], 1
lea ecx, [esi - 1]
mov edx, dword [edx + edi*4]
mov word [edx + eax*2], cx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
dec eax
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x64], 0
movsx eax, word [ecx + eax*2]
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 3
mov dword [esp + 0x2c], ecx
lea eax, [edx + ecx]
mov cl, byte [edx + ecx + 2]
test cl, cl
jbe 0x406126
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x64]
movsx edx, word [eax + ecx*2]
mov ecx, dword [ebp]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x5c], edx
jle 0x406107
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
lea edi, [ecx + edx*2]
cmp byte [eax + ebx], 0
jne 0x4060f4
mov edx, dword [ebp + 0xc]
mov esi, dword [esp + 0x10]
add esi, edx
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 2]
test edx, edx
jle 0x4060f4
mov esi, dword [esi + 4]
movsx ebx, word [esi]
cmp dword [esp + 0x5c], ebx
je 0x4060c9
inc ecx
add esi, 2
cmp ecx, edx
jl 0x4060ab
mov ebx, dword [esp + 0x34]
jmp 0x4060f4
fstp st(0)
jmp 0x405f42
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
inc edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
mov word [edi], ax
mov byte [eax + ebx], 1
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x20]
add edi, 2
dec ecx
mov word [edx + eax*2], cx
mov edx, dword [esp + 0x10]
mov ecx, dword [ebp]
inc eax
add edx, 0x38
cmp eax, ecx
mov dword [esp + 0x10], edx
jl 0x40608e
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x64]
add eax, edx
xor ecx, ecx
inc esi
mov cl, byte [eax + 2]
mov dword [esp + 0x64], esi
cmp esi, ecx
jl 0x406063
mov eax, dword [esp + 0x1c]
test eax, eax
jg 0x406028
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
jmp 0x405fe6
mov edx, dword [esp + 0x14]
push edx
call fcn.004cb110
push ebx
call fcn.004cb110
mov eax, dword [esp + 0x2c]
add esp, 8
mov word [eax], si
mov ecx, dword [0x54bfa0]
mov edx, dword [esp + 0x24]
inc edi
add ebp, 0xd0
add edx, 2
cmp edi, ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], edx
jle 0x405f74
xor edx, edx
test ecx, ecx
mov dword [esp + 0x18], edx
jl 0x4064a6
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x14], 0xfdbb4f
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
je 0x406484
mov eax, dword [edx*4 + 0x555228]
test eax, eax
je 0x4061c0
cmp eax, dword [esp + edx*4 + 0xbc]
je 0x406484
mov ax, word [ebp]
cmp ax, 1
je 0x406484
movsx eax, ax
push 0xa30
push str.D:descent3mainBOA.cpp
lea ecx, [eax + eax*2]
shl ecx, 2
push ecx
call fcn.004cb090
mov esi, eax
push 0xa31
movsx eax, word [ebp]
push str.D:descent3mainBOA.cpp
lea edx, [eax + eax*2]
shl edx, 2
push edx
call fcn.004cb090
xor edi, edi
add esp, 0x18
cmp word [ebp], di
mov ebx, eax
jle 0x40631c
movsx ecx, di
mov eax, 0xcb18967f
xor ebp, ebp
lea ecx, [ecx + ecx*2]
shl ecx, 2
mov dword [ecx + esi + 8], eax
mov dword [ecx + esi + 4], eax
mov dword [ecx + esi], eax
mov eax, 0x4b18967f
mov dword [ecx + ebx + 8], eax
mov dword [ecx + ebx + 4], eax
mov dword [ecx + ebx], eax
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xcb], ebp
jle 0x40630e
mov dword [esp + 0x24], ebp
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
mov edx, dword [eax + edx*4]
cmp word [edx + ebp*2], di
jne 0x4062f2
mov eax, dword [esp + 0x14]
mov edx, dword [eax - 0xbf]
mov eax, dword [esp + 0x24]
add edx, eax
fld dword [edx + 0x2c]
fcomp dword [ecx + esi]
fnstsw ax
test ah, 0x41
jne 0x40628b
mov eax, dword [edx + 0x2c]
mov dword [ecx + esi], eax
fld dword [edx + 0x30]
fcomp dword [ecx + esi + 4]
fnstsw ax
test ah, 0x41
jne 0x4062a0
mov eax, dword [edx + 0x30]
mov dword [ecx + esi + 4], eax
fld dword [edx + 0x34]
fcomp dword [ecx + esi + 8]
fnstsw ax
test ah, 0x41
jne 0x4062b5
mov eax, dword [edx + 0x34]
mov dword [ecx + esi + 8], eax
fld dword [edx + 0x20]
fcomp dword [ecx + ebx]
fnstsw ax
test ah, 1
je 0x4062c8
mov eax, dword [edx + 0x20]
mov dword [ecx + ebx], eax
fld dword [edx + 0x24]
fcomp dword [ecx + ebx + 4]
fnstsw ax
test ah, 1
je 0x4062dd
mov eax, dword [edx + 0x24]
mov dword [ecx + ebx + 4], eax
fld dword [edx + 0x28]
fcomp dword [ecx + ebx + 8]
fnstsw ax
test ah, 1
je 0x4062f2
mov edx, dword [edx + 0x28]
mov dword [ecx + ebx + 8], edx
mov eax, dword [esp + 0x24]
inc ebp
add eax, 0x38
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
cmp ebp, dword [eax - 0xcb]
jl 0x406253
mov ecx, dword [esp + 0x10]
inc edi
cmp di, word [ecx]
jl 0x406214
mov edx, ebx
mov dword [esp + 0x1c], 0
mov eax, dword [edx]
mov dword [esp + 0x44], eax
mov eax, esi
mov ecx, dword [edx + 4]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax]
mov edx, dword [edx + 8]
mov dword [esp + 0x38], ecx
fld dword [esp + 0x38]
fsub dword [esp + 0x44]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x3c], edx
mov ecx, dword [esp + 0x10]
fld dword [esp + 0x3c]
mov eax, dword [eax + 8]
fsub dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov ax, word [ecx]
fld dword [esp + 0x40]
fsub dword [esp + 0x4c]
cmp ax, 1
fmul st(1)
fmul st(2)
fabs
fstp dword [esp + 0x20]
fstp st(0)
fstp st(0)
jle 0x406467
mov edi, ebx
mov ebp, 1
movsx ecx, ax
sub edi, esi
lea edx, [esi + 0xc]
mov dword [esp + 0x2c], edi
dec ecx
jmp 0x4063a1
mov edi, dword [esp + 0x2c]
add edi, edx
mov eax, dword [edi]
mov dword [esp + 0x68], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x6c], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x70], eax
mov eax, edx
mov edi, dword [eax]
mov dword [esp + 0x50], edi
fld dword [esp + 0x50]
mov edi, dword [eax + 4]
fsub dword [esp + 0x68]
mov eax, dword [eax + 8]
mov dword [esp + 0x54], edi
fld dword [esp + 0x54]
fsub dword [esp + 0x6c]
mov dword [esp + 0x58], eax
fld dword [esp + 0x58]
fsub dword [esp + 0x70]
fmul st(1)
fmulp st(2)
fxch st(1)
fabs
fxch st(1)
fstp st(0)
fcom dword [esp + 0x20]
fnstsw ax
test ah, 0x41
jne 0x406406
fstp dword [esp + 0x20]
mov dword [esp + 0x1c], ebp
jmp 0x406408
fstp st(0)
inc ebp
add edx, 0xc
dec ecx
jne 0x40639d
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x406467
mov ecx, dword [esp + 0x14]
xor ebp, ebp
mov eax, dword [ecx - 0xcb]
test eax, eax
jle 0x406467
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
xor eax, eax
mov ecx, dword [edx + edi*4]
lea eax, [ecx + eax*2]
mov cx, word [eax]
test cx, cx
jne 0x406449
mov cx, word [esp + 0x1c]
mov word [eax], cx
jmp 0x406457
movsx ecx, cx
cmp ecx, dword [esp + 0x1c]
jne 0x406457
mov word [eax], 0
mov ecx, dword [esp + 0x14]
inc ebp
movsx eax, bp
cmp eax, dword [ecx - 0xcb]
jl 0x406431
push esi
call fcn.004cb110
push ebx
call fcn.004cb110
mov ecx, dword [0x54bfa0]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
add esp, 8
mov edi, dword [esp + 0x14]
inc edx
add edi, 0xd0
add ebp, 2
cmp edx, ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebp
jle 0x40619b
xor ebp, ebp
test ecx, ecx
mov dword [esp + 0x18], ebp
jl 0x406c7e
lea edx, [ebp + ebp*2]
lea esi, [ebp + edx*4]
shl esi, 4
mov al, byte [esi + 0xfdbb4f]
test al, al
je 0x406c71
mov eax, dword [ebp*4 + 0x555228]
mov dword [0x5a7728], ebp
test eax, eax
je 0x4064eb
cmp eax, dword [esp + ebp*4 + 0xbc]
je 0x406c71
mov ax, word [esi + 0xfdbae0]
test ax, ax
je 0x406564
xor edi, edi
test ax, ax
jle 0x40651c
mov eax, dword [esi + 0xfdbae4]
mov ecx, dword [eax + edi*4]
push ecx
call fcn.004cb110
movsx edx, word [esi + 0xfdbae0]
add esp, 4
inc edi
cmp edi, edx
jl 0x4064fe
mov eax, dword [esi + 0xfdbae4]
push eax
call fcn.004cb110
mov ecx, dword [esi + 0xfdbae8]
push ecx
call fcn.004cb110
mov edx, dword [esi + 0xfdbaec]
push edx
call fcn.004cb110
mov eax, dword [esi + 0xfdbaf0]
push eax
call fcn.004cb110
mov ecx, dword [esi + 0xfdbaf4]
push ecx
call fcn.004cb110
add esp, 0x14
mov word [esi + 0xfdbae0], 0
mov edx, dword [esp + 0x60]
push 0xa9a
push str.D:descent3mainBOA.cpp
push 0x320
mov ax, word [edx + ebp*2]
add ax, 0x1a
mov word [esi + 0xfdbae0], ax
call fcn.004cb090
add esp, 0xc
mov dword [esi + 0xfdbae4], eax
xor ebx, ebx
mov ecx, dword [esi + 0xfdba84]
push 0xa9d
shl ecx, 1
push str.D:descent3mainBOA.cpp
push ecx
call fcn.004cb090
mov edx, dword [esi + 0xfdbae4]
add ebx, 4
add esp, 0xc
cmp ebx, 0x320
mov dword [edx + ebx - 4], eax
jl 0x406596
push 0xa9f
push str.D:descent3mainBOA.cpp
push 0x190
call fcn.004cb090
push 0xaa0
push str.D:descent3mainBOA.cpp
push 0x960
mov dword [esi + 0xfdbae8], eax
call fcn.004cb090
push 0xaa1
push str.D:descent3mainBOA.cpp
push 0x960
mov dword [esi + 0xfdbaec], eax
call fcn.004cb090
push 0xaa2
push str.D:descent3mainBOA.cpp
push 0xc8
mov dword [esi + 0xfdbaf0], eax
call fcn.004cb090
add esp, 0x30
mov dword [esi + 0xfdbaf4], eax
xor eax, eax
mov ecx, dword [esi + 0xfdbaf4]
mov dl, byte [eax + 0x51d814]
mov byte [ecx + eax], dl
inc eax
cmp eax, 0x1b
jl 0x406633
lea edx, [esi + 0xfdbaac]
mov eax, edx
mov ecx, dword [eax]
mov dword [esp + 0x8c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x90], ecx
lea ecx, [esi + 0xfdbab8]
mov eax, dword [eax + 8]
mov dword [esp + 0x94], eax
mov eax, ecx
mov edi, dword [eax]
mov dword [esp + 0x68], edi
fld dword [esp + 0x68]
fadd dword [esp + 0x8c]
mov edi, dword [eax + 4]
mov dword [esp + 0x6c], edi
mov eax, dword [eax + 8]
fstp dword [esp + 0x68]
fld dword [esp + 0x6c]
fadd dword [esp + 0x90]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x50], eax
fstp dword [esp + 0x6c]
fld dword [esp + 0x70]
fadd dword [esp + 0x94]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
fstp dword [esp + 0x70]
fld dword [esp + 0x68]
fmul dword [0x51d830]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x58], eax
fstp dword [esp + 0x50]
fld dword [esp + 0x54]
fmul dword [0x51d830]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x38], eax
mov dword [esp + 0x44], eax
fstp dword [esp + 0x54]
fld dword [esp + 0x58]
fmul dword [0x51d830]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x48], ebx
fstp dword [esp + 0x58]
fld dword [esp + 0x50]
fsub dword [0x51d874]
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x4c], ebp
fst dword [esp + 0x38]
fld dword [esp + 0x3c]
fsub dword [0x51d874]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x74], edi
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fsub dword [0x51d874]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x78], edi
fstp dword [esp + 0x40]
fld dword [esp + 0x50]
fadd dword [0x51d874]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x7c], edi
fstp dword [esp + 0x44]
fld dword [esp + 0x48]
fadd dword [0x51d874]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x80], eax
fstp dword [esp + 0x48]
fld dword [esp + 0x4c]
fadd dword [0x51d874]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x84], eax
fstp dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
fcomp dword [ecx]
mov dword [esp + 0x88], eax
fnstsw ax
test ah, 0x41
je 0x4067be
fld dword [ecx]
fadd dword [0x51d870]
fstp dword [esp + 0x74]
fld dword [esp + 0x78]
fcomp dword [esi + 0xfdbabc]
fnstsw ax
test ah, 0x41
je 0x4067df
fld dword [esi + 0xfdbabc]
fadd dword [0x51d870]
fstp dword [esp + 0x78]
fld dword [esp + 0x7c]
fcomp dword [esi + 0xfdbac0]
fnstsw ax
test ah, 0x41
je 0x406800
fld dword [esi + 0xfdbac0]
fadd dword [0x51d870]
fstp dword [esp + 0x7c]
fld dword [esp + 0x44]
fcomp dword [edx]
fnstsw ax
test ah, 1
jne 0x40681c
fld dword [edx]
fsub dword [0x51d870]
fstp dword [esp + 0x80]
fld dword [esp + 0x84]
fcomp dword [esi + 0xfdbab0]
fnstsw ax
test ah, 1
jne 0x406843
fld dword [esi + 0xfdbab0]
fsub dword [0x51d870]
fstp dword [esp + 0x84]
fld dword [esp + 0x88]
fcomp dword [esi + 0xfdbab4]
fnstsw ax
test ah, 1
jne 0x40686a
fld dword [esi + 0xfdbab4]
fsub dword [0x51d870]
fstp dword [esp + 0x88]
fld dword [esp + 0x74]
fcomp dword [esp + 0x80]
fnstsw ax
test ah, 1
jne 0x40688b
mov ecx, dword [ecx]
mov edx, dword [edx]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x80], edx
fld dword [esp + 0x78]
fcomp dword [esp + 0x84]
fnstsw ax
test ah, 1
jne 0x4068b4
mov eax, dword [esi + 0xfdbabc]
mov ecx, dword [esi + 0xfdbab0]
mov dword [esp + 0x78], eax
mov dword [esp + 0x84], ecx
fld dword [esp + 0x7c]
fcomp dword [esp + 0x88]
fnstsw ax
test ah, 1
jne 0x4068dd
mov edx, dword [esi + 0xfdbac0]
mov eax, dword [esi + 0xfdbab4]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
lea ecx, [esi + 0xfdbac8]
mov dword [esi + 0xfdbac8], edx
mov edx, dword [esp + 0x7c]
mov dword [ecx + 4], eax
lea eax, [esi + 0xfdbad4]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [eax], ecx
mov ecx, dword [esp + 0x88]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
xor ecx, ecx
xor eax, eax
cmp word [esi + 0xfdbae0], cx
jle 0x406942
mov edi, dword [esi + 0xfdbae8]
movsx edx, ax
inc eax
mov word [edi + edx*2], cx
cmp ax, word [esi + 0xfdbae0]
jl 0x40692b
mov eax, dword [esi + 0xfdba84]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jle 0x406c67
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
jmp 0x40696a
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0xfdba90]
lea ecx, [eax*8]
sub ecx, eax
xor eax, eax
mov dword [esp + 0x2c], eax
fld dword [edx + ecx*8 + 0x2c]
fcomp dword [esp + 0x74]
lea edx, [edx + ecx*8]
mov word [esp + 0x30], ax
xor cl, cl
fnstsw ax
test ah, 0x41
je 0x4069a3
mov byte [esp + 0x2c], 1
mov cl, 1
fld dword [edx + 0x30]
fcomp dword [esp + 0x78]
fnstsw ax
test ah, 0x41
je 0x4069b8
mov byte [esp + 0x2d], 1
mov cl, 1
fld dword [edx + 0x34]
fcomp dword [esp + 0x7c]
fnstsw ax
test ah, 0x41
je 0x4069cd
mov byte [esp + 0x2e], 1
mov cl, 1
mov al, byte [esp + 0x2c]
test al, al
jne 0x4069ed
fld dword [edx + 0x20]
fcomp dword [esp + 0x80]
fnstsw ax
test ah, 1
jne 0x4069ed
mov byte [esp + 0x2f], 1
mov cl, 1
mov al, byte [esp + 0x2d]
test al, al
jne 0x406a0d
fld dword [edx + 0x24]
fcomp dword [esp + 0x84]
fnstsw ax
test ah, 1
jne 0x406a0d
mov byte [esp + 0x30], 1
mov cl, 1
mov al, byte [esp + 0x2e]
test al, al
jne 0x406a2d
fld dword [edx + 0x28]
fcomp dword [esp + 0x88]
fnstsw ax
test ah, 1
jne 0x406a2d
mov byte [esp + 0x31], 1
mov cl, 1
xor dl, dl
test cl, cl
mov byte [esp + 0x20], dl
jne 0x406aa6
mov edx, dword [ebx + ebp*4]
mov ecx, dword [esp + 0x1c]
mov ax, word [edx + ecx*2]
test ax, ax
jne 0x406a6b
mov eax, dword [esi + 0xfdbae8]
mov ecx, dword [esp + 0x14]
movsx edx, word [eax]
mov eax, dword [esi + 0xfdbae4]
mov eax, dword [eax]
mov word [eax + edx*2], cx
mov eax, dword [esi + 0xfdbae8]
jmp 0x406c48
mov edx, dword [esi + 0xfdbae8]
movsx eax, ax
cmp word [edx + eax*2 + 0x34], 0
mov edx, dword [esi + 0xfdbaf4]
jne 0x406a93
mov byte [edx + eax + 0x1a], 0
mov eax, dword [ebx + ebp*4]
movsx eax, word [eax + ecx*2]
jmp 0x406c16
lea eax, [edx + eax + 0x1a]
mov byte [eax], 0
mov eax, dword [ebx + ebp*4]
movsx eax, word [eax + ecx*2]
jmp 0x406c16
xor ecx, ecx
mov al, byte [esp + ecx + 0x2c]
test al, al
je 0x406ab6
mov al, 1
shl al, cl
or dl, al
inc ecx
cmp ecx, 6
jl 0x406aa8
mov byte [esp + 0x20], dl
mov ecx, dword [esp + 0x20]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 0x37
ja case.0x406ade.27
xor ecx, ecx
mov cl, byte [eax + 0x407bdc]
jmp dword [ecx*4 + 0x407b70]
mov edi, 1
jmp 0x406bae
mov edi, 2
jmp 0x406bae
mov edi, 3
jmp 0x406bae
mov edi, 4
jmp 0x406bae
mov edi, 5
jmp 0x406bae
mov edi, 6
jmp 0x406bae
mov edi, 7
jmp 0x406bae
mov edi, 8
jmp 0x406bae
mov edi, 9
jmp 0x406bae
mov edi, 0xa
jmp 0x406bae
mov edi, 0xb
jmp 0x406bae
mov edi, 0xc
jmp 0x406bae
mov edi, 0xd
jmp 0x406bae
mov edi, 0xe
jmp 0x406bae
mov edi, 0xf
jmp 0x406bae
mov edi, 0x10
jmp 0x406bae
mov edi, 0x11
jmp 0x406bae
mov edi, 0x12
jmp 0x406bae
mov edi, 0x13
jmp 0x406bae
mov edi, 0x14
jmp 0x406bae
mov edi, 0x15
jmp 0x406bae
mov edi, 0x16
jmp 0x406bae
mov edi, 0x17
jmp 0x406bae
mov edi, 0x18
jmp 0x406bae
mov edi, 0x19
jmp 0x406bae
mov edi, 0x1a
mov dword [esp + 0x10], edi
mov eax, dword [ebx + ebp*4]
mov ecx, dword [esp + 0x1c]
mov ax, word [eax + ecx*2]
test ax, ax
jne 0x406be8
mov edx, dword [esi + 0xfdbae8]
mov ecx, dword [esi + 0xfdbae4]
movsx eax, word [edx + edi*2]
mov edx, dword [ecx + edi*4]
mov ecx, dword [esp + 0x14]
mov word [edx + eax*2], cx
mov eax, dword [esi + 0xfdbae8]
lea eax, [eax + edi*2]
jmp 0x406c48
mov ecx, dword [esi + 0xfdbae8]
movsx eax, ax
cmp word [ecx + eax*2 + 0x34], 0
mov ecx, dword [esi + 0xfdbaf4]
jne 0x406c05
mov byte [ecx + eax + 0x1a], dl
jmp 0x406c0b
lea eax, [ecx + eax + 0x1a]
and byte [eax], dl
mov edx, dword [ebx + ebp*4]
mov eax, dword [esp + 0x1c]
movsx eax, word [edx + eax*2]
mov ecx, dword [esi + 0xfdbae8]
movsx edx, word [ecx + eax*2 + 0x34]
mov ecx, dword [esi + 0xfdbae4]
mov eax, dword [ecx + eax*4 + 0x68]
mov ecx, dword [esp + 0x14]
mov word [eax + edx*2], cx
mov edx, dword [ebx + ebp*4]
mov eax, dword [esp + 0x1c]
movsx edx, word [edx + eax*2]
mov eax, dword [esi + 0xfdbae8]
lea eax, [eax + edx*2 + 0x34]
inc word [eax]
inc ecx
movsx eax, cx
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 0xfdba84]
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x406966
jmp 0x406c6b
mov ebp, dword [esp + 0x18]
mov ecx, dword [0x54bfa0]
inc ebp
cmp ebp, ecx
mov dword [esp + 0x18], ebp
jle 0x4064b4
mov ecx, dword [esp + 0x60]
push ecx
call fcn.004cb110
mov eax, dword [0x54bfa0]
add esp, 4
xor esi, esi
test eax, eax
jl 0x406cd6
mov ebx, dword [esp + 0x28]
mov edi, 0xfdbb4f
cmp byte [edi], 0
je 0x406cc4
mov eax, dword [esi*4 + 0x555228]
test eax, eax
je 0x406cb8
cmp eax, dword [esp + esi*4 + 0xbc]
je 0x406cc4
mov edx, dword [ebx + esi*4]
push edx
call fcn.004cb110
add esp, 4
mov eax, dword [0x54bfa0]
inc esi
add edi, 0xd0
cmp esi, eax
jle 0x406c9f
jmp 0x406cda
mov ebx, dword [esp + 0x28]
push ebx
call fcn.004cb110
mov eax, dword [0x54bfa0]
add esp, 4
xor edx, edx
test eax, eax
mov dword [esp + 0x18], edx
jl 0x406e63
mov ecx, 0xfdbaec
mov al, byte [ecx + 0x63]
test al, al
je 0x406e4b
mov eax, dword [edx*4 + 0x555228]
test eax, eax
je 0x406d1e
cmp eax, dword [esp + edx*4 + 0xbc]
je 0x406e4b
xor edi, edi
cmp word [ecx - 0xc], di
mov dword [esp + 0x14], edi
jle 0x406e4b
mov ebp, dword [ecx + 4]
mov eax, 0xcb18967f
movsx ebx, di
mov esi, 0x4b18967f
lea edx, [ebx + ebx*2]
shl edx, 2
mov dword [edx + ebp + 8], eax
mov ebp, dword [ecx + 4]
mov dword [edx + ebp + 4], eax
mov ebp, dword [ecx + 4]
mov dword [edx + ebp], eax
mov eax, dword [ecx]
xor ebp, ebp
mov dword [eax + edx + 8], esi
mov eax, dword [ecx]
mov dword [eax + edx + 4], esi
mov eax, dword [ecx]
mov dword [eax + edx], esi
mov eax, dword [ecx - 4]
cmp word [eax + ebx*2], bp
jle 0x406e38
mov eax, dword [ecx - 8]
mov eax, dword [eax + ebx*4]
movsx eax, word [eax + ebp*2]
lea esi, [eax*8]
sub esi, eax
mov eax, dword [ecx - 0x5c]
fld dword [eax + esi*8 + 0x2c]
lea esi, [eax + esi*8]
mov eax, dword [ecx + 4]
fcomp dword [eax + edx]
lea edi, [eax + edx]
fnstsw ax
test ah, 0x41
jne 0x406da7
mov eax, dword [esi + 0x2c]
mov dword [edi], eax
mov eax, dword [ecx + 4]
fld dword [esi + 0x30]
fcomp dword [eax + edx + 4]
lea edi, [eax + edx + 4]
fnstsw ax
test ah, 0x41
jne 0x406dc1
mov eax, dword [esi + 0x30]
mov dword [edi], eax
mov eax, dword [ecx + 4]
fld dword [esi + 0x34]
fcomp dword [eax + edx + 8]
lea edi, [eax + edx + 8]
fnstsw ax
test ah, 0x41
jne 0x406ddb
mov eax, dword [esi + 0x34]
mov dword [edi], eax
mov eax, dword [ecx]
fld dword [esi + 0x20]
fcomp dword [eax + edx]
lea edi, [eax + edx]
fnstsw ax
test ah, 1
je 0x406df2
mov eax, dword [esi + 0x20]
mov dword [edi], eax
mov eax, dword [ecx]
fld dword [esi + 0x24]
fcomp dword [eax + edx + 4]
lea edi, [eax + edx + 4]
fnstsw ax
test ah, 1
je 0x406e0b
mov eax, dword [esi + 0x24]
mov dword [edi], eax
mov eax, dword [ecx]
fld dword [esi + 0x28]
fcomp dword [eax + edx + 8]
lea edi, [eax + edx + 8]
fnstsw ax
test ah, 1
je 0x406e24
mov eax, dword [esi + 0x28]
mov dword [edi], eax
mov eax, dword [ecx - 4]
inc ebp
movsx eax, word [eax + ebx*2]
cmp ebp, eax
jl 0x406d75
mov edi, dword [esp + 0x14]
inc edi
cmp di, word [ecx - 0xc]
mov dword [esp + 0x14], edi
jl 0x406d2e
mov edx, dword [esp + 0x18]
mov eax, dword [0x54bfa0]
inc edx
add ecx, 0xd0
cmp edx, eax
mov dword [esp + 0x18], edx
jle 0x406cfb
mov edi, dword [0x54bfa0]
xor ecx, ecx
cmp edi, ecx
mov dword [esp + 0x14], ecx
jl 0x406fb2
lea edx, [ecx + ecx*2]
lea eax, [ecx + edx*4]
shl eax, 4
mov dl, byte [eax + 0xfdbb4f]
test dl, dl
je 0x406f9e
mov edx, dword [ecx*4 + 0x555228]
test edx, edx
je 0x406ea6
cmp edx, dword [esp + ecx*4 + 0xbc]
je 0x406f9e
movsx edx, word [eax + 0xfdbae0]
xor ebp, ebp
test edx, edx
jle 0x406f9e
mov ecx, 1
mov esi, 0xc
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], esi
mov edi, dword [eax + 0xfdbae8]
cmp word [edi + ebp*2], 0
jne 0x406f7c
cmp ecx, edx
jge 0x406f70
mov edx, dword [eax + 0xfdbae4]
mov ebx, dword [edx + ecx*4]
mov edi, dword [edx + ecx*4 - 4]
lea edx, [edx + ecx*4]
mov dword [edx - 4], ebx
mov edx, dword [eax + 0xfdbae4]
mov dword [edx + ecx*4], edi
mov edx, dword [eax + 0xfdbae8]
mov di, word [edx + ecx*2]
lea edx, [edx + ecx*2]
mov word [edx - 2], di
mov edx, dword [eax + 0xfdbaec]
add edx, esi
mov ebx, dword [edx]
lea edi, [edx - 0xc]
mov dword [edx - 0xc], ebx
mov ebx, dword [edx + 4]
mov dword [edi + 4], ebx
mov edx, dword [edx + 8]
mov dword [edi + 8], edx
mov edx, dword [eax + 0xfdbaf0]
add edx, esi
add esi, 0xc
mov ebx, dword [edx]
lea edi, [edx - 0xc]
mov dword [edx - 0xc], ebx
mov ebx, dword [edx + 4]
mov dword [edi + 4], ebx
mov edx, dword [edx + 8]
mov dword [edi + 8], edx
mov edx, dword [eax + 0xfdbaf4]
lea edi, [edx + ecx]
inc ecx
mov dl, byte [edi]
mov byte [edi - 1], dl
movsx edx, word [eax + 0xfdbae0]
cmp ecx, edx
jl 0x406ee2
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
dec word [eax + 0xfdbae0]
dec ebp
dec ecx
sub esi, 0xc
movsx edx, word [eax + 0xfdbae0]
inc ebp
inc ecx
add esi, 0xc
cmp ebp, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], esi
jl 0x406ec9
mov edi, dword [0x54bfa0]
mov eax, dword [esp + 0x14]
inc eax
movsx ecx, ax
cmp ecx, edi
mov dword [esp + 0x14], eax
jle 0x406e77
xor eax, eax
test edi, edi
mov dword [esp + 0x18], eax
jl 0x407403
mov esi, 0xfdbae8
mov cl, byte [esi + 0x67]
test cl, cl
je 0x4073ea
mov edx, dword [eax*4 + 0x555228]
movsx ecx, word [esi - 8]
test edx, edx
je 0x406fec
cmp edx, dword [esp + eax*4 + 0xbc]
je 0x4073ea
test ecx, ecx
jle 0x4073ea
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi]
mov dx, word [ecx + ebp]
cmp dx, 0xf
mov dword [esp + 0x1c], edx
jle 0x4073ba
mov ecx, dword [esi + 8]
add ecx, eax
mov edi, dword [ecx]
mov dword [esp + 0x8c], edi
mov edi, dword [ecx + 4]
mov dword [esp + 0x90], edi
lea edi, [esp + 0x98]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x94], ecx
mov ecx, dword [esi + 4]
add ecx, eax
mov eax, dword [ecx]
mov dword [esp + 0x50], eax
fld dword [esp + 0x50]
fadd dword [esp + 0x8c]
mov eax, dword [ecx + 4]
mov dword [esp + 0x54], eax
mov ecx, dword [ecx + 8]
fstp dword [esp + 0x50]
fld dword [esp + 0x54]
fadd dword [esp + 0x90]
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x38], eax
fstp dword [esp + 0x54]
fld dword [esp + 0x58]
fadd dword [esp + 0x94]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x3c], ecx
fstp dword [esp + 0x58]
fld dword [esp + 0x50]
fmul dword [0x51d830]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x40], eax
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fmul dword [0x51d830]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x44], ecx
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fmul dword [0x51d830]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
xor eax, eax
fstp dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x4c], ecx
mov ecx, 9
rep stosd dword es:[edi], eax
xor edi, edi
lea eax, [esp + 0x44]
mov dword [esp + 0x24], edi
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x64]
test dx, dx
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
jle 0x407187
movsx eax, word [esp + 0x1c]
mov ecx, dword [esi - 4]
mov edx, dword [esp + 0x28]
mov ebx, dword [esi - 0x58]
mov dword [esp + 0x34], eax
mov edx, dword [ecx + edx]
movsx eax, word [edx]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esp + 0x24]
lea ecx, [eax + ecx*2]
fld dword [ebx + ecx*4 + 0x2c]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 0x41
je 0x40714a
mov eax, 2
jmp 0x407162
fld dword [ebx + ecx*4 + 0x20]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 1
jne 0x40715d
xor eax, eax
jmp 0x407162
mov eax, 1
add eax, edi
add edx, 2
mov ecx, dword [esp + eax*4 + 0x98]
lea eax, [esp + eax*4 + 0x98]
inc ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x34]
dec eax
mov dword [esp + 0x34], eax
jne 0x407121
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x64]
add edi, 3
inc eax
add ebx, 4
cmp edi, 9
mov dword [esp + 0x24], eax
mov dword [esp + 0x64], ebx
jl 0x4070fc
lea ebx, [esp + 0x68]
lea edi, [esp + 0x9c]
mov dword [esp + 0x34], 3
mov eax, dword [edi]
mov ecx, dword [edi - 4]
sub ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 4]
fild dword [esp + 0x2c]
sub eax, ecx
mov dword [esp + 0x2c], eax
fabs
fild dword [esp + 0x2c]
fabs
fstp qword [esp + 0x2c]
fcom qword [esp + 0x2c]
fnstsw ax
test ah, 0x41
je 0x4071ef
fstp st(0)
fld qword [esp + 0x2c]
call fcn.004b6898
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
add edi, 0xc
add ebx, 4
dec eax
mov dword [esp + 0x34], eax
jne 0x4071ba
fild dword [esp + 0x68]
xor edx, edx
mov ecx, 1
mov dword [esp + 0x24], edx
lea edi, [esp + 0x6c]
fstp dword [esp + 0x34]
fild dword [edi]
fld dword [esp + 0x34]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x407235
fstp dword [esp + 0x34]
mov edx, ecx
jmp 0x407237
fstp st(0)
inc ecx
add edi, 4
cmp ecx, 3
jl 0x40721e
mov ax, word [esi - 8]
mov dword [esp + 0x24], edx
cmp ax, 0xc6
jg 0x4073ba
movsx ecx, ax
mov eax, dword [esi]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov word [eax + ecx*2], bx
mov ecx, dword [esi]
movsx eax, word [esi - 8]
mov word [ecx + eax*2 + 2], bx
mov edi, dword [esi]
cmp word [edi + ebp], bx
jle 0x4073b5
fld dword [esp + edx*4 + 0x44]
mov ecx, dword [esi - 4]
mov eax, dword [esp + 0x28]
movsx edx, bx
mov eax, dword [ecx + eax]
movsx eax, word [eax + edx*2]
lea ebp, [eax*8]
sub ebp, eax
mov eax, dword [esp + 0x24]
lea ebp, [eax + ebp*2]
mov eax, dword [esi - 0x58]
fcom dword [eax + ebp*4 + 0x2c]
fnstsw ax
test ah, 1
jne 0x407310
movsx eax, word [esi - 8]
mov ebp, dword [esp + 0x28]
movsx edi, word [edi + eax*2]
mov ebp, dword [ecx + ebp]
mov ecx, dword [ecx + eax*4]
mov ax, word [ebp + edx*2]
mov ebp, dword [esp + 0x60]
mov word [ecx + edi*2], ax
mov eax, dword [esi]
movsx ecx, word [esi - 8]
inc word [eax + ecx*2]
lea eax, [eax + ecx*2]
mov ecx, dword [esi]
mov eax, edx
movsx edx, word [ecx + ebp]
dec edx
cmp eax, edx
jge 0x407303
mov ecx, dword [esi - 4]
mov edx, dword [esp + 0x28]
inc eax
mov ecx, dword [edx + ecx]
mov dx, word [ecx + eax*2]
mov word [ecx + eax*2 - 2], dx
mov ecx, dword [esi]
movsx edx, word [ecx + ebp]
dec edx
cmp eax, edx
jl 0x4072e4
mov eax, dword [esi]
add eax, ebp
dec word [eax]
dec ebx
jmp 0x4073a2
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax]
mov bx, word [eax + edx*2]
movsx eax, bx
lea ebp, [eax*8]
sub ebp, eax
mov eax, dword [esp + 0x24]
lea ebp, [eax + ebp*2]
mov eax, dword [esi - 0x58]
fcom dword [eax + ebp*4 + 0x20]
fnstsw ax
test ah, 0x41
je 0x40739a
movsx eax, word [esi - 8]
mov ebp, dword [esp + 0x60]
movsx edi, word [edi + eax*2 + 2]
mov ecx, dword [ecx + eax*4 + 4]
mov word [ecx + edi*2], bx
mov ecx, dword [esi]
movsx eax, word [esi - 8]
inc word [ecx + eax*2 + 2]
lea eax, [ecx + eax*2 + 2]
mov eax, edx
mov edx, dword [esi]
movsx ecx, word [edx + ebp]
dec ecx
cmp eax, ecx
jge 0x40738c
mov edx, dword [esi - 4]
mov ecx, dword [esp + 0x28]
inc eax
mov ecx, dword [ecx + edx]
mov dx, word [ecx + eax*2]
mov word [ecx + eax*2 - 2], dx
mov ecx, dword [esi]
movsx edx, word [ecx + ebp]
dec edx
cmp eax, edx
jl 0x40736d
mov eax, dword [esi]
mov ebx, dword [esp + 0x14]
add eax, ebp
dec word [eax]
dec ebx
jmp 0x4073a2
mov ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x14]
mov edi, dword [esi]
inc ebx
mov dword [esp + 0x14], ebx
cmp bx, word [edi + ebp]
jl 0x40727c
fstp st(0)
add word [esi - 8], 2
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x5c]
add eax, 0xc
add edi, 4
add ebp, 2
dec ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x60], ebp
mov dword [esp + 0x5c], ecx
jne 0x407008
mov eax, dword [esp + 0x18]
mov edi, dword [0x54bfa0]
inc eax
add esi, 0xd0
cmp eax, edi
mov dword [esp + 0x18], eax
jle 0x406fc5
xor ecx, ecx
cmp edi, ecx
mov dword [esp + 0x14], ecx
jl 0x40754c
lea edx, [ecx + ecx*2]
lea eax, [ecx + edx*4]
shl eax, 4
mov dl, byte [eax + 0xfdbb4f]
test dl, dl
je 0x407538
mov edx, dword [ecx*4 + 0x555228]
test edx, edx
je 0x407440
cmp edx, dword [esp + ecx*4 + 0xbc]
je 0x407538
movsx edx, word [eax + 0xfdbae0]
xor ebp, ebp
test edx, edx
jle 0x407538
mov ecx, 1
mov esi, 0xc
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x20], esi
mov edi, dword [eax + 0xfdbae8]
cmp word [edi + ebp*2], 0
jne 0x407516
cmp ecx, edx
jge 0x40750a
mov edx, dword [eax + 0xfdbae4]
mov ebx, dword [edx + ecx*4]
mov edi, dword [edx + ecx*4 - 4]
lea edx, [edx + ecx*4]
mov dword [edx - 4], ebx
mov edx, dword [eax + 0xfdbae4]
mov dword [edx + ecx*4], edi
mov edx, dword [eax + 0xfdbae8]
mov di, word [edx + ecx*2]
lea edx, [edx + ecx*2]
mov word [edx - 2], di
mov edx, dword [eax + 0xfdbaec]
add edx, esi
mov ebx, dword [edx]
lea edi, [edx - 0xc]
mov dword [edx - 0xc], ebx
mov ebx, dword [edx + 4]
mov dword [edi + 4], ebx
mov edx, dword [edx + 8]
mov dword [edi + 8], edx
mov edx, dword [eax + 0xfdbaf0]
add edx, esi
add esi, 0xc
mov ebx, dword [edx]
lea edi, [edx - 0xc]
mov dword [edx - 0xc], ebx
mov ebx, dword [edx + 4]
mov dword [edi + 4], ebx
mov edx, dword [edx + 8]
mov dword [edi + 8], edx
mov edx, dword [eax + 0xfdbaf4]
lea edi, [edx + ecx]
inc ecx
mov dl, byte [edi]
mov byte [edi - 1], dl
movsx edx, word [eax + 0xfdbae0]
cmp ecx, edx
jl 0x40747c
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x5c]
dec word [eax + 0xfdbae0]
dec ebp
dec ecx
sub esi, 0xc
movsx edx, word [eax + 0xfdbae0]
inc ebp
inc ecx
add esi, 0xc
cmp ebp, edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x20], esi
jl 0x407463
mov edi, dword [0x54bfa0]
mov eax, dword [esp + 0x14]
inc eax
movsx ecx, ax
cmp ecx, edi
mov dword [esp + 0x14], eax
jle 0x407411
xor edx, edx
test edi, edi
mov dword [esp + 0x18], edx
jl 0x4076c7
mov ecx, 0xfdbaec
mov al, byte [ecx + 0x63]
test al, al
je 0x4076af
mov eax, dword [edx*4 + 0x555228]
test eax, eax
je 0x407582
cmp eax, dword [esp + edx*4 + 0xbc]
je 0x4076af
xor edi, edi
cmp word [ecx - 0xc], di
mov dword [esp + 0x14], edi
jle 0x4076af
mov ebp, dword [ecx + 4]
mov eax, 0xcb18967f
movsx ebx, di
mov esi, 0x4b18967f
lea edx, [ebx + ebx*2]
shl edx, 2
mov dword [edx + ebp + 8], eax
mov ebp, dword [ecx + 4]
mov dword [edx + ebp + 4], eax
mov ebp, dword [ecx + 4]
mov dword [edx + ebp], eax
mov eax, dword [ecx]
xor ebp, ebp
mov dword [eax + edx + 8], esi
mov eax, dword [ecx]
mov dword [eax + edx + 4], esi
mov eax, dword [ecx]
mov dword [eax + edx], esi
mov eax, dword [ecx - 4]
cmp word [eax + ebx*2], bp
jle 0x40769c
mov eax, dword [ecx - 8]
mov eax, dword [eax + ebx*4]
movsx eax, word [eax + ebp*2]
lea esi, [eax*8]
sub esi, eax
mov eax, dword [ecx - 0x5c]
fld dword [eax + esi*8 + 0x2c]
lea esi, [eax + esi*8]
mov eax, dword [ecx + 4]
fcomp dword [eax + edx]
lea edi, [eax + edx]
fnstsw ax
test ah, 0x41
jne 0x40760b
mov eax, dword [esi + 0x2c]
mov dword [edi], eax
mov eax, dword [ecx + 4]
fld dword [esi + 0x30]
fcomp dword [eax + edx + 4]
lea edi, [eax + edx + 4]
fnstsw ax
test ah, 0x41
jne 0x407625
mov eax, dword [esi + 0x30]
mov dword [edi], eax
mov eax, dword [ecx + 4]
fld dword [esi + 0x34]
fcomp dword [eax + edx + 8]
lea edi, [eax + edx + 8]
fnstsw ax
test ah, 0x41
jne 0x40763f
mov eax, dword [esi + 0x34]
mov dword [edi], eax
mov eax, dword [ecx]
fld dword [esi + 0x20]
fcomp dword [eax + edx]
lea edi, [eax + edx]
fnstsw ax
test ah, 1
je 0x407656
mov eax, dword [esi + 0x20]
mov dword [edi], eax
mov eax, dword [ecx]
fld dword [esi + 0x24]
fcomp dword [eax + edx + 4]
lea edi, [eax + edx + 4]
fnstsw ax
test ah, 1
je 0x40766f
mov eax, dword [esi + 0x24]
mov dword [edi], eax
mov eax, dword [ecx]
fld dword [esi + 0x28]
fcomp dword [eax + edx + 8]
lea edi, [eax + edx + 8]
fnstsw ax
test ah, 1
je 0x407688
mov eax, dword [esi + 0x28]
mov dword [edi], eax
mov eax, dword [ecx - 4]
inc ebp
movsx eax, word [eax + ebx*2]
cmp ebp, eax
jl 0x4075d9
mov edi, dword [esp + 0x14]
inc edi
cmp di, word [ecx - 0xc]
mov dword [esp + 0x14], edi
jl 0x407592
mov edx, dword [esp + 0x18]
mov eax, dword [0x54bfa0]
inc edx
add ecx, 0xd0
cmp edx, eax
mov dword [esp + 0x18], edx
jle 0x40755f
mov edx, dword [0x54bfa0]
xor ebx, ebx
test edx, edx
jl 0x407868
mov esi, 0xfdbad4
mov al, byte [esi + 0x7b]
test al, al
je 0x407859
lea ecx, [esi - 0xc]
mov eax, dword [esi - 0xc]
mov dword [esp + 0x8c], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x90], eax
mov eax, esi
mov ecx, dword [ecx + 8]
mov dword [esp + 0x94], ecx
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x40], eax
mov eax, dword [ebx*4 + 0x555228]
test eax, eax
je 0x407736
cmp eax, dword [esp + ebx*4 + 0xbc]
je 0x407859
xor edi, edi
cmp word [esi + 0xc], di
jle 0x407859
mov ecx, dword [esi + 0x14]
xor ebp, ebp
cmp word [ecx + edi*2], bp
jle 0x407846
mov edx, dword [esi + 0x10]
movsx eax, bp
mov ecx, dword [edx + edi*4]
movsx eax, word [ecx + eax*2]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [esi - 0x44]
fld dword [eax + edx*8 + 0x2c]
fcomp dword [esp + 0x8c]
lea ecx, [eax + edx*8]
xor edx, edx
mov dword [esp + 0x2c], edx
mov word [esp + 0x30], dx
fnstsw ax
test ah, 0x41
je 0x40778f
mov byte [esp + 0x2c], 1
fld dword [ecx + 0x30]
fcomp dword [esp + 0x90]
fnstsw ax
test ah, 0x41
je 0x4077a5
mov byte [esp + 0x2d], 1
fld dword [ecx + 0x34]
fcomp dword [esp + 0x94]
fnstsw ax
test ah, 0x41
je 0x4077bb
mov byte [esp + 0x2e], 1
mov al, byte [esp + 0x2c]
test al, al
jne 0x4077d6
fld dword [ecx + 0x20]
fcomp dword [esp + 0x38]
fnstsw ax
test ah, 1
jne 0x4077d6
mov byte [esp + 0x2f], 1
mov al, byte [esp + 0x2d]
test al, al
jne 0x4077f1
fld dword [ecx + 0x24]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 1
jne 0x4077f1
mov byte [esp + 0x30], 1
mov al, byte [esp + 0x2e]
test al, al
jne 0x40780c
fld dword [ecx + 0x28]
fcomp dword [esp + 0x40]
fnstsw ax
test ah, 1
jne 0x40780c
mov byte [esp + 0x31], 1
xor dl, dl
xor ecx, ecx
mov al, byte [esp + ecx + 0x2c]
test al, al
je 0x40781e
mov al, 1
shl al, cl
or dl, al
inc ecx
cmp ecx, 6
jl 0x407810
test bp, bp
jne 0x407831
mov ecx, dword [esi + 0x20]
mov byte [ecx + edi], dl
jmp 0x407838
mov eax, dword [esi + 0x20]
add eax, edi
and byte [eax], dl
mov ecx, dword [esi + 0x14]
inc ebp
cmp bp, word [ecx + edi*2]
jl 0x407751
movsx edx, word [esi + 0xc]
inc edi
cmp edi, edx
jl 0x407742
mov edx, dword [0x54bfa0]
inc ebx
add esi, 0xd0
cmp ebx, edx
jle 0x4076dc
xor ebx, ebx
test edx, edx
jl 0x4079bc
xor eax, eax
lea ecx, [eax + eax*2]
lea esi, [eax + ecx*4]
shl esi, 4
mov cl, byte [esi + 0xfdbb4f]
test cl, cl
je 0x4079b0
mov ecx, dword [eax*4 + 0x555228]
test ecx, ecx
je 0x4078a3
cmp ecx, dword [esp + eax*4 + 0xbc]
je 0x4079b0
xor edi, edi
cmp word [esi + 0xfdbae0], di
jle 0x4078e2
mov edx, dword [esi + 0xfdbae8]
mov ecx, dword [esi + 0xfdbae4]
movsx eax, word [edx + edi*2]
mov edx, dword [ecx + edi*4]
shl eax, 1
push eax
push edx
call fcn.004cb1f0
mov ecx, dword [esi + 0xfdbae4]
add esp, 8
mov dword [ecx + edi*4], eax
inc edi
movsx edx, word [esi + 0xfdbae0]
cmp edi, edx
jl 0x4078ae
movsx eax, word [esi + 0xfdbae0]
cmp eax, 0xc8
jge 0x407914
lea edi, [eax*4]
mov eax, dword [esi + 0xfdbae4]
mov ecx, dword [edi + eax]
push ecx
call fcn.004cb110
add edi, 4
add esp, 4
cmp edi, 0x320
jl 0x4078f7
movsx edx, word [esi + 0xfdbae0]
mov eax, dword [esi + 0xfdbae4]
shl edx, 2
push edx
push eax
call fcn.004cb1f0
movsx ecx, word [esi + 0xfdbae0]
mov edx, dword [esi + 0xfdbae8]
mov dword [esi + 0xfdbae4], eax
shl ecx, 1
push ecx
push edx
call fcn.004cb1f0
mov dword [esi + 0xfdbae8], eax
mov ecx, dword [esi + 0xfdbaec]
movsx eax, word [esi + 0xfdbae0]
lea eax, [eax + eax*2]
shl eax, 2
push eax
push ecx
call fcn.004cb1f0
mov dword [esi + 0xfdbaec], eax
movsx eax, word [esi + 0xfdbae0]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0xfdbaf0]
shl edx, 2
push edx
push eax
call fcn.004cb1f0
movsx ecx, word [esi + 0xfdbae0]
mov edx, dword [esi + 0xfdbaf4]
push ecx
push edx
mov dword [esi + 0xfdbaf0], eax
call fcn.004cb1f0
mov edx, dword [0x54bfa0]
add esp, 0x28
mov dword [esi + 0xfdbaf4], eax
inc ebx
movsx eax, bx
cmp eax, edx
jle 0x407874
mov ecx, 0x190
lea esi, [esp + 0xbc]
mov edi, 0x555228
mov ebx, 0x4b18967f
rep movsd dword es:[edi], dword [esi]
mov ebp, 0xcb18967f
mov edi, dword [0x54bfa0]
test edi, edi
jl 0x407a9c
mov ecx, 0xfdbab0
inc edi
mov al, byte [ecx + 0x9f]
test al, al
je 0x407a8f
mov eax, dword [ecx - 0x2c]
mov dword [ecx + 4], ebp
test eax, eax
mov dword [ecx], ebp
mov dword [ecx - 4], ebp
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0xc], ebx
mov dword [ecx + 8], ebx
jle 0x407a8f
mov edx, dword [ecx - 0x20]
mov esi, eax
add edx, 0x30
fld dword [edx - 4]
fcomp dword [ecx - 4]
fnstsw ax
test ah, 0x41
jne 0x407a2e
mov eax, dword [edx - 4]
mov dword [ecx - 4], eax
fld dword [edx]
fcomp dword [ecx]
fnstsw ax
test ah, 0x41
jne 0x407a3d
mov eax, dword [edx]
mov dword [ecx], eax
fld dword [edx + 4]
fcomp dword [ecx + 4]
fnstsw ax
test ah, 0x41
jne 0x407a50
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
fld dword [edx - 0x10]
fcomp dword [ecx + 8]
fnstsw ax
test ah, 1
je 0x407a63
mov eax, dword [edx - 0x10]
mov dword [ecx + 8], eax
fld dword [edx - 0xc]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 1
je 0x407a76
mov eax, dword [edx - 0xc]
mov dword [ecx + 0xc], eax
fld dword [edx - 8]
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 1
je 0x407a89
mov eax, dword [edx - 8]
mov dword [ecx + 0x10], eax
add edx, 0x38
dec esi
jne 0x407a1b
add ecx, 0xd0
dec edi
jne 0x4079ed
mov eax, dword [0xe962e4]
xor ebx, ebx
test eax, eax
jl 0x407b64
mov esi, 0x943f3c
mov ebp, 0x800
mov al, byte [esi - 0x74]
lea edi, [esi - 0x74]
cmp al, 0xff
je 0x407b50
test dword [esi - 0x70], ebp
jne 0x407ae0
fld dword [esi]
fcomp qword [0x51d868]
fnstsw ax
test ah, 1
jne 0x407ae0
push ebx
call fcn.0046c1b0
add esp, 4
cmp byte [edi], 0x12
jne 0x407b3d
xor eax, eax
mov ax, word [esi - 0x72]
lea ecx, [eax + eax*2]
lea edx, [eax + ecx*4]
lea eax, [esi + 0xec]
shl edx, 4
add edx, 0xfdbab8
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
xor eax, eax
mov ax, word [esi - 0x72]
lea ecx, [eax + eax*2]
lea edx, [eax + ecx*4]
lea eax, [esi + 0xf8]
shl edx, 4
add edx, 0xfdbaac
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
jmp 0x407b50
push edi
call fcn.0046b080
lea eax, [esi - 0x4c]
push eax
push edi
call fcn.0046b2d0
add esp, 0xc
mov eax, dword [0xe962e4]
inc ebx
add esi, 0x328
cmp ebx, eax
jle 0x407ab5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6ec
ret